# I am trying to run a code that results in AM. But in the frequency spectrum, I get the spectrum at a carrier frequency 6 times the original. What am i doing wrong?

조회 수: 1(최근 30일)
Jenny 2013년 10월 17일
댓글: David 2013년 10월 20일
fs=input('Input the sampling frequency : ');
fc=input('Input the carrier frequency : ');
fm=input('Input the message frequency : ');
Am=input('Input the message amplitude : ');
Ac=input('Input the carrier amplitude : ');
dt=1/fs;
t=[-3:dt:3];
m=Am*cos(2*pi*fm*t);
f=1./t;
M=ammod(m,fc,fs,0,Ac);
subplot(2,1,1)
plot(abs(fft(M)));
hold
subplot(2,1,2)
plot(t,M);
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Jenny 2013년 10월 20일
Ok. Here it is -
fs=10000;
fc=1000;
fm=10;
Am=1;
Ac=10;
dt=1/fs;
t=[-3:dt:3];
m=Am*cos(2*pi*fm*t);
f=1./t;
M=ammod(m,fc,fs,0,Ac);
subplot(2,1,1)
plot(abs(fft(M)));
hold
subplot(2,1,2)
plot(t,M);

댓글을 달려면 로그인하십시오.

### 답변(1개)

David 2013년 10월 20일
편집: David 2013년 10월 20일
Are you remembering to divide by 2*pi in your frequency plot?? w = 2*pi*f and 2*pi~6.
If this isn't the problem then it may be the number of FFT points you are using. NFFTPts = (Fs*(max(T) - min(T)))/2.
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
David 2013년 10월 20일
Okay, since I do not know exactly how you are using the FFT function, a division of 2 may or may not be valid.
As for the slight differences you are getting in frequency, that might be due to the frequency resolution of your plot. Frequency resolution is given by the following equation:
df = 1/T = Fs/N
where T is total acquisition time, N is the number of samples, and Fs is the sampliing frequency. However, in your case, this would be df = 1/6 Hz, which is much smaller than the error you are getting. I'm not sure why you are getting these mixed results...
Note: The frequency resolution improves as the observation time T increases.

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!