Matlab 版 (精华区)
发信人: hahn (有奇☆闭关造文中), 信区: Matlab
标 题: [合集] 求做矩形脉冲信号的fft后频谱图!
发信站: 哈工大紫丁香 (Tue Nov 14 07:40:58 2006), 站内
────────────────────────────────────────
Tomwelch (tomwelch) 于 (Tue Jun 13 16:59:51 2006) 说道:
设:
t=-1:.01:1;
x=ones(size(t));
figure(1)
plot(t,x)
figure(2)
y=fft(x);
plot(abs(y))
这样结果不对,想画plot(f,y),这个f怎么定,还有有的书提到df这个也得设定吗?
谁能给我一个能正确得到sinc(f)的频谱图的程序啊 谢谢了
────────────────────────────────────────
zjliu (秋天的萝卜) 于 (Tue Jun 13 17:00:47 2006) 说道:
help fftshift
【 在 Tomwelch (tomwelch) 的大作中提到: 】
: 设:
: t=-1:.01:1;
: x=ones(size(t));
: ...................
────────────────────────────────────────
feifeifool (爱芳) 于 (Tue Jun 13 19:09:40 2006) 说道:
给个例子,剩下不懂的,参照数字信号处理书.
clear;clc;close all;
caiyangpinlv=2^6;%采样频率,尽可能的选区2的幂指数
t=[0:1/caiyangpinlv:30];%采样时间
y=exp(-0.3*t).*(sin(2*pi*10*t)+sin(2*pi*100*t));%信号
z=fft(y);
yy=abs(z);
N=length(t);
xx=[0:1:N-1]/N*caiyangpinlv;
yy1=yy/caiyangpinlv;
figure(1)
plot(t,y);
figure(2)
plot(xx,yy1);
xlim([0,xx(fix(length(xx)/2))]);%由于对称性只需要观察一半(这样说可能不专业,不
%是该专业的,没办法)
【 在 Tomwelch (tomwelch) 的大作中提到: 】
: 设:
: t=-1:.01:1;
: x=ones(size(t));
: ...................
────────────────────────────────────────
koppie (1983.6.14-2006.6.14) 于 (Wed Jun 14 13:50:58 2006) 说道:
采样频率高达100Hz
而信号的带宽(主瓣宽度)要比采样频率小得多
因此DFT画出来频带显得应该比较窄
并且为了正确显示连续谱,fft点数N不能只取序列长度(不出现时域混叠的基本要求为N取序列长度,也是fft函数的默认点数),而应该至少大4倍以上,8倍以上最好(最好取2的幂次,运算较快),否则很多频域的变化被掩盖掉了,建议在fft中给出点数
试一下降低采样频率至20Hz(甚至10Hz)左右,并且增大fft的点数
一般做频谱分析只要采用DFT的输出即可,不能把对称的部分砍掉(因为相位是不同的),
当然如果只做幅度谱,无所谓了
see Alan V Oppenheim: Discrete-time Signal Processing 2nd, 1999
Chapter 8, 10
清华大学出版社影印出版
尤其第十章的前几节相当精彩
【 在 Tomwelch (tomwelch) 的大作中提到: 】
: 设:
: t=-1:.01:1;
: x=ones(size(t));
: figure(1)
: plot(t,x)
: figure(2)
: y=fft(x);
: plot(abs(y))
: 这样结果不对,想画plot(f,y),这个f怎么定,还有有的书提到df这个也得设定吗?
: 谁能给我一个能正确得到sinc(f)的频谱图的程序啊 谢谢了
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.938毫秒