Tweets by @dsprelated

A Quadrature Signals Tutorial: Complex, But Not Complicated

Understanding the 'Phasing Method' of Single Sideband Demodulation

Complex Digital Signal Processing in Telecommunications

Introduction to Sound Processing

Introduction of C Programming for DSP Applications

**Technical discussion about Matlab and issues related to Digital Signal Processing.**

**Is this thread worth a thumbs up?**

Hi everyone, I'm new in matlab and I'm struggling quite a lot. I don't get very well how to define de time vectors so that the sine wave I want to plot displays correctly. As an example, if I put this code to represent a 50 Khz sine: t=0:1/100e3:2 %2 seconds of timeline x=sin(2*pi*50e3*t); plot(t,x); The result is quite awful. Like noise growing until it gets the end of the timeline. However, if I put a sampling frequency of fs=(2Â·fc)+1: 100001 Hz, the result is kind of strange as well but not so awful as the previous one, it seems like a sine but as a sin(x)Â·sin(kx). What's wrong? Thanks!

pay attention that when you use k/(2*fc), k-int, you will get sin(2*pi*fc*k/2/fc)=sin(pi*k)=0 therefore you see junk. you need to define fcPe3; t=0:1/100/fc:6/fc; x=sin(2*pi*fc*t); plot(t,x); in order to see beautiful sine wave with 6 periods ----------------------------- Michael Bezenchuk M.Sc Student Electrical and Computer Engineering Ben Gurion University b...@ee.bgu.ac.il / b...@gmail.com On Thu, Oct 23, 2008 at 8:37 PM, <r...@gmail.com> wrote: > Hi everyone, > > I'm new in matlab and I'm struggling quite a lot. I don't get very well how > to define de time vectors so that the sine wave I want to plot displays > correctly. > > As an example, if I put this code to represent a 50 Khz sine: > > t=0:1/100e3:2 %2 seconds of timeline > x=sin(2*pi*50e3*t); > plot(t,x); > > The result is quite awful. Like noise growing until it gets the end of the > timeline. However, if I put a sampling frequency of fs=(2·fc)+1: 100001 Hz, > the result is kind of strange as well but not so awful as the previous one, > it seems like a sine but as a sin(x)·sin(kx). > > What's wrong? > > Thanks!

Dear rogercanalda When plotting sine wave you have to be careful if you are sampling frequency is exactly double than the signal frequency. You know that sin(0)=0, sin(180)=0 and sin(360) is also equal to 0. In your code you are actually generating values of sine function at the positions where it gives zero. When using sin() function donâ€™t start from 0; I mean start from (1/2*100e3) when defining vector 't' OR use cos() function if you want to start from zero because cos(0)=1 so the code should be t=1/(2*100e2):1/100e3:2 %2 seconds of timeline x=sin(2*pi*50e3*t); plot(t,x); OR t=0:1/100e3:2 %2 seconds of timeline x=cos(2*pi*50e3*t); plot(t,x); Hopefully, answers the question Anser Mehboob --- On Thu, 10/23/08, r...@gmail.com <r...@gmail.com> wrote: > From: r...@gmail.com <r...@gmail.com> > Subject: [matlab] how to plot a sine wave correctly > To: m...@yahoogroups.com > Date: Thursday, October 23, 2008, 11:37 AM > Hi everyone, > > I'm new in matlab and I'm struggling quite a lot. I > don't get very well how to define de time vectors so > that the sine wave I want to plot displays correctly. > > As an example, if I put this code to represent a 50 Khz > sine: > > t=0:1/100e3:2 %2 seconds of timeline > x=sin(2*pi*50e3*t); > plot(t,x); > > The result is quite awful. Like noise growing until it gets > the end of the timeline. However, if I put a sampling > frequency of fs=(2è·¯fc)+1: 100001 Hz, the result is kind of > strange as well but not so awful as the previous one, it > seems like a sine but as a sin(x)è·¯sin(kx). > > What's wrong? > > Thanks! >

You have to be careful about you time vector also. f=1; t=0:0.0001:2; x=sin(2*pi*f*t); plot(t,x); That is 2 seconds of time, so you will see 2 full cycles on your plot, f = 1hz. When t is samples t=0:16000; f=1; x=sin(2*pi*f*t/32000); plot(t,x); You will see half a cycle, you have 16000 samples and you specified fs2000 its more like sinwave = sine(2*pi*f*t./fs); when t is inÂ samples for your case since you want seconds, I would suggest using the second method fP000; fs0000; t=0:50000; x=sin(2*pi*f*t./fs); plot(t,x); Your main problem was that you had less points than the needed, you were right on the edge of sampling theorem. try this I changed the 100 to 110 t=0:1/110e3:2Â ; %2 seconds of timeline x=sin(2*pi*50e3*t); plot(t,x); -S ________________________________ From: "r...@gmail.com" <r...@gmail.com> To: m...@yahoogroups.com Sent: Thursday, October 23, 2008 11:37:30 AM Subject: [matlab] how to plot a sine wave correctly Hi everyone, I'm new in matlab and I'm struggling quite a lot. I don't get very well how to define de time vectors so that the sine wave I want to plot displays correctly. As an example, if I put this code to represent a 50 Khz sine: t=0:1/100e3:2Â ; %2 seconds of timeline x=sin(2*pi*50e3*t); plot(t,x); The result is quite awful. Like noise growing until it gets the end of the timeline. However, if I put a sampling frequency of fs=(2è·¯fc)+1: 100001 Hz, the result is kind of strange as well but not so awful as the previous one, it seems like a sine but as a sin(x)è·¯sin(kx). What's wrong? Thanks!

Hi everyone, > >I'm new in matlab and I'm struggling quite a lot. I don't get very well how to define de time vectors so that the sine wave I want to plot displays correctly. > >As an example, if I put this code to represent a 50 Khz sine: > >t=0:1/100e3:2 %2 seconds of timeline >x=sin(2*pi*50e3*t); >plot(t,x); > >The result is quite awful. Like noise growing until it gets the end of the timeline. However, if I put a sampling frequency of fs=(2Â·fc)+1: 100001 Hz, the result is kind of strange as well but not so awful as the previous one, it seems like a sine but as a sin(x)Â·sin(kx). > >What's wrong? > >Thanks! > >------------------------------------ hehe,the reply above is right,but it is none of business of the original question.although at 0 or pi, the plot is zero, why it didnot plot zero, why it is so awful? in my opinion, the awful plot is due to float computation error. And u can avoid zero by 2 ways. 1. inrease sampling rate 2. change the time vector head point, not in the 0 or k*pi exactly. Thanks.

Hi! The thing is that you have aliasing! Tray this: t=0:1/(4*100e3):1e-3; %2 seconds of timeline x=sin(2*pi*50e3*t); plot(t,x); Regards! 2008/10/27 <h...@yahoo.com.cn> > Hi everyone, > > > >I'm new in matlab and I'm struggling quite a lot. I don't get very well > how to define de time vectors so that the sine wave I want to plot displays > correctly. > > > >As an example, if I put this code to represent a 50 Khz sine: > > > >t=0:1/100e3:2 %2 seconds of timeline > >x=sin(2*pi*50e3*t); > >plot(t,x); > > > >The result is quite awful. Like noise growing until it gets the end of the > timeline. However, if I put a sampling frequency of fs=(2·fc)+1: 100001 Hz, > the result is kind of strange as well but not so awful as the previous one, > it seems like a sine but as a sin(x)·sin(kx). > > > >What's wrong? > > > >Thanks! > > > >------------------------------------ > > > > hehe,the reply above is right,but it is none of business of the original > question.although at 0 or pi, the plot is zero, why it didnot plot zero, why > it is so awful? > > in my opinion, the awful plot is due to float computation error. And u can > avoid zero by 2 ways. > > 1. inrease sampling rate > > 2. change the time vector head point, not in the 0 or k*pi exactly. > > Thanks. >