关于信号显示频谱问题的思考
来源:互联网 发布:搜狗推广账户怎么优化 编辑:程序博客网 时间:2024/05/16 18:56
y = fft(x,N);%对x进行N点fft变换
f = Fs/N*(1:N/2);
plot(f,y(1:N/2));%fft变换后关于N/2对称,只需要显示一半就可以了
这里注意只能将点数N变为N/2,若将Fs变为Fs/2,虽然显示范围是采样频率的一半,但N个点还是对称的,只有将点数N变为N/2,才能实现只显示一半
还有由于fft是关于N/2对称的所以不能对输入的x进行N/2点fft变换,这样输出时候不会显示一半,而且还会有信息的丢失,因此不能试图进行N/2点fft变换,而显示一半
总而言之,只能对抽样点数N变为N / 2,采样频率Fs不能变为变为N / 2,
也不能只进行N / 2点fft变换
y = fft(x,2048); %对信号x进行2048点傅里叶变换f = Fs/2048*(1:1024);%显示频率的一半
plot(f,y(1:1024));
两者区别于进行fft变换的点数一个是N点,一个是2048点,对已第二种会有信息的丢失,因为对信号进行的共有N点的采样
[x,Fs] = wavread('5');
N = length(x);
t = (0:N-1)/Fs; %抽样点数除以抽样频率是显示时间
figure(1)
plot(t,x(1:N));title('信号时域波形');
xlabel('Time(s)');
y = fft(x,N); %对信号x进行N点傅里叶变换
f = Fs/N*(1:N/2);%显示频率
figure(2)
plot(f,abs(y(1:N/2)));
title('对信号进行N点fft变换的信号频域特性');
xlabel('Frequency(Hz)');
sound(x,Fs); %播放原声
pause(4.5);
————————————————————
[x,Fs] = wavread('5');
N = length(x);
t = (0:N-1)/Fs; %抽样点数除以抽样频率是显示时间
figure(3)
plot(t,x(1:N));title('信号时域波形');
xlabel('Time(s)');
y = fft(x,2048); %对信号x进行N点傅里叶变换
f = Fs/2048*(1:1024);%显示频率
figure(4)
plot(f,abs(y(1:1024)));
title('对信号进行2048点fft变换的信号频域特性');
xlabel('Frequency(Hz)');
sound(x,Fs); %播放原声
pause(4.5);
- 关于信号显示频谱问题的思考
- Matlab:显示time信号的频谱
- 关于频谱效率的问题
- MATLAB中通过fft计算信号频谱的问题
- 有关波形和频谱显示问题的回复
- 关于FFT频谱泄露问题
- 揭开脉冲信号频谱的面纱
- 对正弦信号相加的频谱分析
- 如何采用fft分析信号的频谱
- 正余弦信号的DFT频谱分析
- 对信号频谱的理解 (转)
- 再续FFT:信号的频谱分析
- 利用MATLAB绘制信号时域波形和信号的频谱
- 频谱显示
- 关于信号等级的问题。
- 信号与频谱
- 离散信号频谱分析
- 信号与频谱
- java外观模式
- JS原型与原型链终极详解
- tomcat user 配置
- iOS CALayer讲解(转载)
- nodejs mysql
- 关于信号显示频谱问题的思考
- 纹理分析
- Phoenix(十一)二级索引之— —性能优化篇
- HTTP、Canvas、Paint
- 最大和问题
- ARM嵌入式开发中的GCC内联汇编简介
- Linux(Ubuntu)下面SecureCRT 完全破解
- (异常)Hibernate的动态模型
- Shell基础-环境变量配置文件-其他配置文件和登录信息