matlab对周期信号做傅里叶变换只是简单的对正弦信号做傅里叶变换,为什么频谱图中出现了两个峰值,而我设定的信号频率是100,以下是我的程序,我想知道怎样能使图中的频率分量出现在-100和+1
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 20:23:31
![matlab对周期信号做傅里叶变换只是简单的对正弦信号做傅里叶变换,为什么频谱图中出现了两个峰值,而我设定的信号频率是100,以下是我的程序,我想知道怎样能使图中的频率分量出现在-100和+1](/uploads/image/z/7933760-8-0.jpg?t=matlab%E5%AF%B9%E5%91%A8%E6%9C%9F%E4%BF%A1%E5%8F%B7%E5%81%9A%E5%82%85%E9%87%8C%E5%8F%B6%E5%8F%98%E6%8D%A2%E5%8F%AA%E6%98%AF%E7%AE%80%E5%8D%95%E7%9A%84%E5%AF%B9%E6%AD%A3%E5%BC%A6%E4%BF%A1%E5%8F%B7%E5%81%9A%E5%82%85%E9%87%8C%E5%8F%B6%E5%8F%98%E6%8D%A2%2C%E4%B8%BA%E4%BB%80%E4%B9%88%E9%A2%91%E8%B0%B1%E5%9B%BE%E4%B8%AD%E5%87%BA%E7%8E%B0%E4%BA%86%E4%B8%A4%E4%B8%AA%E5%B3%B0%E5%80%BC%2C%E8%80%8C%E6%88%91%E8%AE%BE%E5%AE%9A%E7%9A%84%E4%BF%A1%E5%8F%B7%E9%A2%91%E7%8E%87%E6%98%AF100%2C%E4%BB%A5%E4%B8%8B%E6%98%AF%E6%88%91%E7%9A%84%E7%A8%8B%E5%BA%8F%2C%E6%88%91%E6%83%B3%E7%9F%A5%E9%81%93%E6%80%8E%E6%A0%B7%E8%83%BD%E4%BD%BF%E5%9B%BE%E4%B8%AD%E7%9A%84%E9%A2%91%E7%8E%87%E5%88%86%E9%87%8F%E5%87%BA%E7%8E%B0%E5%9C%A8-100%E5%92%8C%2B1)
matlab对周期信号做傅里叶变换只是简单的对正弦信号做傅里叶变换,为什么频谱图中出现了两个峰值,而我设定的信号频率是100,以下是我的程序,我想知道怎样能使图中的频率分量出现在-100和+1
matlab对周期信号做傅里叶变换
只是简单的对正弦信号做傅里叶变换,为什么频谱图中出现了两个峰值,而我设定的信号频率是100,以下是我的程序,我想知道怎样能使图中的频率分量出现在-100和+100,还有另外ff(x,n)这个n对于一般周期信号如何选择
fs=2000;%采样频率
N=100;%采样点数
f=100;%信号频率
t=1:N;
x1=sin(2*pi*f*t/fs);
figure(1)
plot(t,x1);
figure(2)
plot(t*(f/fs),x1);
y=fft(x1,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:(length(y)-1))*fs/length(y);%横坐标频率的表达式为f=(0:M-1)*Fs/M;
figure(3)
plot(f,mag);
我画出的频谱是这样的
matlab对周期信号做傅里叶变换只是简单的对正弦信号做傅里叶变换,为什么频谱图中出现了两个峰值,而我设定的信号频率是100,以下是我的程序,我想知道怎样能使图中的频率分量出现在-100和+1
在“f=(0:(length(y)-1))*fs/length(y);”后面插入一句代码“f=fftshift(f,2)-fs/2;”
在fft变换后,必须做fftshift计算,不然是不对的.
另外,fft(x,n)中,n的取值表示的计算采样点总数.当x长度大于n时,fft计算只取x的前n个数据;当x长度小于n时,fft计算会在x后面补充0以凑够数据.这个n直接决定了fft变换后得到的最小分辨频率.也就是说,观测时间越长,数据越多,能够描述的最低频率越小,这也是符合常理的