数字信号处理基于MATLAB的离散傅里叶变换的仿真
[转载]MATLAB中傅里叶fft函数使用(仿真程序和图形结果)
[转载]MATLAB中傅⾥叶fft函数使⽤(仿真程序和图形结
果)
原⽂地址:MATLAB中傅⾥叶fft函数使⽤(仿真程序和图形结果)作者:西电⼤宝Chuck
MATLAB中的傅⾥叶变换时是⾮常常⽤的,研究信号处理时不可避免,尤其在频域。
这是⼀个例⼦,使⽤MATLAB时对于信号的采样频率选择很重要,⾸先要满⾜奈奎斯特采样定理,
然后最好选择4倍以上的奶奎斯特采样频率作为fs,这样绘制出的图形和结果才能⽐较精确直观。
N=512;fs=1200;%采样点数和采样频率
n=0:N-1;t=n/fs;%时间序列
y=sin(2*pi*50*t)+sin(2*pi*120*t);%定义⼀个含有50hz和120hz两种频率的信号
Y=fft(y,N);%快速傅⾥叶变换
f=n*fs/N;%频率序列
Y=abs(Y);%求模
plot(f,Y);%绘制信号频域图形
仿真结果:课件两个频率在50和120hz处
推荐⼀⾸歌,我很喜欢 small things,是不是很舒服西电⼤宝。
数字信号处理实验matlab版离散傅里叶级数(DFS)
数字信号处理实验matlab版离散傅⾥叶级数(DFS)实验11 离散傅⾥叶级数(DFS)(完美格式版,本⼈⾃⼰完成,所有语句正确,不排除极个别错误,特别适⽤于⼭⼤,勿⽤冰点等⼯具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)XXXX学号姓名处XXXX⼀、实验⽬的1、加深对离散周期序列傅⾥叶级数(DFS)基本概念的理解。
2、掌握⽤MA TLAB语⾔求解周期序列傅⾥叶级数变换和逆变换的⽅法。
3、观察离散周期序列的重复周期数对频谱特性的影响。
4、了解离散序列的周期卷积及其线性卷积的区别。
⼆、实验内容1、周期序列的离散傅⾥叶级数。
2、周期序列的傅⾥叶级数变换和逆变换。
3、离散傅⾥叶变换和逆变换的通⽤⼦程序。
4、周期重复次数对序列频谱的影响。
5、周期序列的卷积和。
三、实验环境MA TLAB7.0四、实验原理⽤matlab进⾏程序设计,利⽤matlab绘图⼗分⽅便,它既可以绘制各种图形,包括⼆维图形和三位图形,还可以对图像进⾏装饰和控制。
1、周期序列的离散傅⾥叶级数(1)连续性周期信号的傅⾥叶级数对应的第k次谐波分量的系数为⽆穷多。
⽽周期为N 的周期序列,其离散傅⾥叶级数谐波分量的系数只有N个是独⽴的。
(2)周期序列的频谱也是⼀个以N为周期的周期序列。
2、周期序列的傅⾥叶级数变换和逆变换例11-1已知⼀个周期性矩形序列的脉冲宽度占整个周期的1/4,⼀个周期的采样点数为16点,显⽰3个周期的信号序列波形。
要求:(1)⽤傅⾥叶级数求信号的幅度频谱和相位频谱。
(2)求傅⾥叶级数逆变换的图形,与原信号图形进⾏⽐较。
解MA TLAB程序如下:N=16;xn=[ones(1,N/4),zeros(1,3*N/4)];xn=[xn,xn,xn];n=0:3*N-1;k=0:3*N-1;Xk=xn*exp(-j*2*pi/N).^(n'*k); %离散傅⾥叶级数变换 x=(Xk*exp(j*2*pi/N).^(n'*k))/N; %离散傅⾥叶级数逆变换subplot(2,2,1),stem(n,xn);title('x(n)');axis([-1,3*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2),stem(n,abs(x)); %显⽰逆变换结果 title('IDFS|X(k)|');axis([-1,3*N,1.1*min(x),1.1*max(x)]); subplot(2,2,3),stem(k,abs(Xk)); %显⽰序列的幅度谱 title('|X(k)|');axis([-1,3*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk)); %显⽰序列的相位谱 title('arg|X(k)|');axis([-1,3*N,1.1*min(angle(Xk)), 1.1*max(angle(Xk))]);运⾏结果如图11-1所⽰。
基于Matlab的傅里叶变换性质仿真
强教 学效 果 。
其对应的频谱 , 可以得 出结论 : 信号 f ( a t ) 的带宽是
信号 f ( t ) 带宽的 a 倍 。我们可 以播放一段 门铃音 f ( t ) , 正常播放 时持续时间为 1 . 2 s ; 将播放时间压缩 为0 . 6 s , 相当于 f ( 2 t ) , 听起来感觉声音频率变高了 ;
冲激函数 ; f - j 函数的傅里叶变换为抽样 函数 ; 抽样信
e
号的傅里叶变换则应为门函数 。 用 Ma t l a b 分别绘出 抽样信号 f i ( t ) = S a ( t ) 和门信号  ̄ ( t ) - r r g 2 ( t ) 的时域 波形及频谱 , 仿真结果如图一所示 , 上一行从左到右
形图,我们知道后一信号相对于前一信号仅仅是发 生了平移 , 这就比较好理解 了。 用 Ma t l a b 分别绘出 f i ( t ) = 1 e - 2 t u ( t ) ; i f ( t ) =1
2
则: F ( t ) + + 2 T T f ( 一【 ^ J ) 。 我们都知道冲激信号的傅里 叶变换的幅度谱 为常数 ; 直流信号的傅里叶变换为
上 的波 形相 同 。
1 . 2时域 平移 性质
幅度谱 , 可 以看到平移后信号的幅度谱未变, 三信号 的幅度谱重叠 ; 下图是信号的的相位谱 , 三个信号的
相位 谱是 不 同的 。
1 . 3 频 域平 移性 质
假设 函数 f ( t ) + ÷ F ( 【 ^ J ) 构成一傅里 叶变 换对 , 则: it f +t 0 ) + + e J  ̄ F ( j t o o信号时域平移 , 则在频域 上只是附加 了一个线性相位 , 我们这样来理解 : 正弦 信号 s i n ( t ) 和s i n ( t + 4 5 。 ), 两个 信号幅度 、 频率是 相同的 , 区别仅仅是在初始相位上 , 画出两信号的波
matlab-离散信号傅里叶变换
1.请用MATLAB编写程序,实现任意两个有限长度序列的卷积和。
要求用图形显示两个序列及卷积结果。
解:y(n)=∑x(i)h(n-i)假设x(n)={1,2,3,4,5}; h(n)={3,6,7,2,1,6}; y(n)=x(n)*h(n)验证:y[n]=[1,12,28,46,65,72,58,32,29,30]【程序】N=5M=6L=N+M-1x=[1,2,3,4,5]h=[3,6,7,2,1,6]y=conv(x,h)nx=0:N-1nh=0:M-1ny=0:L-1subplot(131);stem(nx,x,'*b');xlabel('n');ylabel('x(n)');grid onsubplot(132);stem(nh,h,'*b');xlabel('n');ylabel('h(h)');grid onsubplot(133);stem(ny,y,'*r');xlabel('n');ylabel('y(h)');grid on【运行结果】2.已知两个序列x[n]=cos(n*pi/2), y[n]=e j*pi*n/4x[n],请编写程序绘制X(e jw)和Y(e jw)和幅度和相角,说明它们的频移关系。
–提示:用abs函数求幅度,用angle求相角。
【程序】n=0:15;x=cos(n*pi/2);y=exp(j*pi*n/4).*x;X=fft(x);Y=fft(y);magX=abs(X);angX=angle(X);magY=abs(Y);angY=angle(Y);subplot(221);stem(n,magX,'*r');xlabel('频率');ylabel('幅度');grid on;subplot(222);stem(n,angX,'*b');xlabel('频率');ylabel('相位');grid on;subplot(223);stem(n,magY,'*r');xlabel('频率');ylabel('幅度');grid on;subplot(224);stem(n,angY,'*b');xlabel('频率');ylabel('相位');grid on;【运行结果】【遇到的问题】只有当n=15时幅度值才相等,n取其他值,幅度值有差异。
MATLAB的离散傅里叶变换的仿真
应用MATLAB对信号进行频谱分析及滤波设计目的要求学生会用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。
一、设计要求1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图;2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;3、绘制三种信号的均方根图谱;4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。
二、系统原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行频谱分析的信号是模拟信号和时域离散信号。
频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现频率分辨率是2π/N。
x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:X(k)=DFT[x(n)]=knNWNnnx∑-=1)(,k=0,1,...,N-1NjeNWπ2-=逆变换:x(n) =IDFT[X(k)]=knNWkXNnN-∑-=1)(1,k=0,1,...,N-1但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。
本实验就是采用FFT,IFFT对信号进行谱分析。
三、程序设计fs=input('please input the fs:');%设定采样频率N=input('please input the N:');%设定数据长度t=0:0.001:1;f=100;%设定正弦信号频率%生成正弦信号x=sin(2*pi*f*t);figure(1);subplot(211);plot(t,x);%作正弦信号的时域波形axis([0,0.1,-1,1]);title('正弦信号时域波形');z=square(50*t);subplot(212)plot(t,z)axis([0,1,-2,2]);title('方波信号时域波形');grid;%进行FFT变换并做频谱图y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);subplot(211);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('正弦信号幅频谱图');y1=fft(z,N);%进行fft变换mag=abs(y1);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('方波信号幅频谱图');grid;%求功率谱sq=abs(y);power=sq.^2;figure(3)subplot(211);plot(f,power);title('正弦信号功率谱');grid;sq1=abs(y1);power1=sq1.^2;subplot(212);plot(f,power1);title('方波信号功率谱');grid;%用IFFT恢复原始信号xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(4);subplot(211);plot(ti,magx);axis([0,0.1,-1,1]);title('通过IFFT转换的正弦信号波形');zifft=ifft(y1);magz=real(zifft);ti1=[0:length(zifft)-1]/fs;subplot(212);plot(ti1,magz);title('通过IFFT转换的方波信号波形');grid;四、仿真结果及分析由图可以看出正弦波周期T=0.01,采样点N=1024.程序为:x=sin(2*pi*f*t);figure(1);subplot(211);plot(t,x);%作正弦信号的时域波形axis([0,0.1,-1,1]);title('正弦信号时域波形');z=square(50*t);subplot(212)plot(t,z)axis([0,1,-2,2]);title('方波信号时域波形');grid;2、对正弦波、方波信号进行FFT变换程序:y=fft(x,N);%进行fft变换mag=abs(y);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);subplot(211);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('正弦信号幅频谱图');y1=fft(z,N);%进行fft变换mag=abs(y1);%求幅值f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);plot(f,mag);%做频谱图axis([0,1000,0,200]);title('方波信号幅频谱图');grid;正弦信号、方波信号功率谱程序:sq=abs(y);power=sq.^2;figure(3)subplot(211);plot(f,power);title('正弦信号功率谱');grid;sq1=abs(y1);power1=sq1.^2;subplot(212);plot(f,power1);title('方波信号功率谱');grid;对两个信号进行恢复程序:xifft=ifft(y);magx=real(xifft);ti=[0:length(xifft)-1]/fs;figure(4);subplot(211);plot(ti,magx);axis([0,0.1,-1,1]);title('通过IFFT转换的正弦信号波形');zifft=ifft(y1);magz=real(zifft);ti1=[0:length(zifft)-1]/fs;subplot(212);plot(ti1,magz);title('通过IFFT转换的方波信号波形');grid;当采样频率小于2fc或N小于M时恢复信号就会出现失真,频谱会发生馄叠。
有关傅里叶变换的MATLAB仿真
有关傅里叶变换的MATLAB仿真Homework 1:1) Determine the DFT of sequence x(n)=R4(n) with N=4, N=8 and N=16 by MATLAB, and plot the figures;程序如下:function[Xk] = DFT(xn,N)k = [0:1:N-1];n = [0:1:N-1];Wn = exp(-j*2*pi/N);kn = k'*n;Wn_kn = Wn.^kn;Xk = xn*Wn_kn;clearxn1=[1 1 1 1];xn2=[1 1 1 1 0 0 0 0];xn3=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];N1=length(xn1);N2=length(xn2);N3=length(xn3);XK1=DFT(xn1,N1); magX1=abs(XK1);XK2=DFT(xn2,N2); magX2=abs(XK2);XK3=DFT(xn3,N3); magX3=abs(XK3)subplot(3,1,1);L1=0:1:N1-1;stem(L1,magX1); axis([0 N1 0 5]);subplot(3,1,2);L2=0:1:N2-1;stem(L2,magX2); axis([0 N2 0 5]);subplot(3,1,3);L3=0:1:N3-1;stem(L3,magX3);axis([0 N3 0 5]);最终方针波形如下:2) Determine the FT of sequence x(n)=R4(n) by MATLAB, and plot the figure;程序如下:function Ke=FT(xn,N)n=0:1:N-1;w=0:0.01*pi:2*pi;Wn=exp(-j*n'*w);Ke=xn*Wn;endclear;xn=[1 1 1 1];w=0:0.01*pi:2*pi;N=length(xn);Ke=FT(xn,N);Ke1=abs(Ke);plot(w,Ke1);axis([0 2*pi 0 5]);最终仿真波形如下:3) Compare figures and give the relationship between DFT and FT;程序如下:(调用函数上边已经求得,这里不再重复)clearxn1=[1 1 1 1];xn2=[1 1 1 1 0 0 0 0];xn3=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0];N1=length(xn1);N2=length(xn2);N3=length(xn3);XK1=DFT(xn1,N1);magX1=abs(XK1);XK2=DFT(xn2,N2);magX2=abs(XK2);XK3=DFT(xn3,N3);magX3=abs(XK3);subplot(4,1,1);L1=0:1:N1-1;stem(L1,magX1);axis([0 N1 0 5]);xlabel('N=4');subplot(4,1,2);L2=0:1:N2-1; stem(L2,magX2); axis([0 N2 0 5]); xlabel('N=8');subplot(4,1,3);L3=0:1:N3-1; stem(L3,magX3); axis([0 N3 0 5]); xlabel('N=16');subplot(4,1,4);xn=[1 1 1 1];w=0:0.01*pi:2*pi; N=length(xn);Ke=FT(xn,N);Ke1=abs(Ke); plot(w,Ke1);axis([0 2*pi 0 5]); xlabel('FT');Homework 2:1) Computing the 24-points DFTs of the two sequences that x1(n)= cos(nπ/6) and x2(n)= cos(nπ/4) using a single 24-point DFT by Matlab;2) Plot the figure of x1(n), x2(n), |X1(k)| and |X2(k)|;3) Analysis the value of |X1(k)| and |X2(k)|;4) Applying IDFT to X1(k) and X2(k) to obtain x1N(n) and x2N(n);程序如下:function[Xk] = DFT(xn,N)k = [0:1:N-1];n = [0:1:N-1];Wn = exp(-j*2*pi/N);kn = k'*n;Wn_kn = Wn.^kn;Xk = xn*Wn_kn;function[xn] =IDFT(Xk,N) k = [0:1:N-1];n = [0:1:N-1];Wn = exp(-j*2*pi/N);kn = k'*n;Wn_kn = Wn.^(-kn);xn = (Xk*Wn_kn)/N;clearN=24;n=0:23;xn1=cos(n*pi/6);xn2=cos(n*pi/4);xn=xn1+j*xn2;XK=DFT(xn,N);XKN=conj(XK);for k=2:NXKN(k)=conj(XK(N-k+2)); endXK1=(XK+XKN)/2XK2=(XK-XKN)/(2*j)x1n=IDFT(XK1,N);x2n=IDFT(XK2,N);subplot(2,2,1)stem(n,xn1);subplot(2,2,2)stem(n,xn2);subplot(2,2,3)stem(n,x1n);axis([0 30 -1 1]);subplot(2,2,4)stem(n,x2n);axis([0 30 -1 1]);最终仿真波形如下图:5) Compare x1(n) and x1N(n);Compare x2(n) and x2N(n);这里,x1(n)是程序中的xn1,x2(n)是程序中的xn2;x1N(n)是程序中的x1n,x1N(n)是程序中的x2n,他们的比较如上图所示。
数字信号处理MATLAB仿真
实验一 数字信号处理的Matlab 仿真一、实验目的1、掌握连续信号及其MATLAB 实现方法;2、掌握离散信号及其MA TLAB 实现方法3、掌握离散信号的基本运算方法,以及MATLAB 实现4、了解离散傅里叶变换的MA TLAB 实现5、了解IIR 数字滤波器设计6、了解FIR 数字滤波器设计1二、实验设备计算机,Matlab 软件三、实验内容(一)、 连续信号及其MATLAB 实现1、 单位冲击信号()0,0()1,0t t t dt εεδδε-⎧=≠⎪⎨=∀>⎪⎩⎰例1.1:t=1/A=50时,单位脉冲序列的MA TLAB 实现程序如下:clear all;t1=-0.5:0.001:0;A=50;A1=1/A;n1=length(t1);u1=zeros(1,n1);t2=0:0.001:A1;t0=0;u2=A*stepfun(t2,t0);t3=A1:0.001:1;n3=length(t3);u3=zeros(1,n3);t=[t1 t2 t3];u=[u1 u2 u3];plot(t,u)axis([-0.5 1 0 A+2])2、 任意函数()()()f t f t d τδττ+∞-∞=-⎰例1.2:用MA TLAB 画出如下表达式的脉冲序列()0.4(2)0.8(1) 1.2() 1.5(1) 1.0(2)0.7(3)f n n n n n n n δδδδδδ=-+-+++++++clear all;t=-2:1:3;N=length(t);x=zeros(1,N);x(1)=0.4;x(2)=0.8x(3)=1.2;x(4)=1.5;x(5)=1.0;x(6)=0.7;stem(t,x);axis([-2.2 3.2 0 1.7])3、 单位阶跃函数1,0()0,0t u t t ⎧≥⎪=⎨<⎪⎩例1.3:用MA TLAB 实现单位阶跃函数clear all;t=-0.5:0.001:1;t0=0;u=stepfun(t,t0);plot(t,u)axis([-0.5 1 -0.2 1.2])4、 斜坡函数0()()g t B t t =-例1.4:用MA TLAB 实现g(t)=3(t-1)clear all;t=0:0.01:3;B=3;t0=1;u=stepfun(t,t0);n=length(t);for i=1:nu(i)=B*u(i)*(t(i)-t0);endplot(t,u)axis([-0.2 3.1 -0.2 6.2])5、 实指数函数()at f t Ae =例1.5:用MA TLAB 实现0.5()3t f t e =clear all;t=0:0.001:3;A=3;a=0.5;u=A*exp(a*t);plot(t,u)axis([-0.2 3.1 -0.2 14])6、 正弦函数2()cos()t f t A T πϕ=+ 例1.6:用MA TLAB 实现正弦函数f(t)=3cos(10πt+1)clear all;t=-0.5:0.001:1;A=3;f=5;fai=1;u=A*sin(2*pi*f*t+fai);plot(t,u)axis([-0.5 1 -3.2 3.2])(二)、离散信号及其MATLAB 实现1、 单位冲激序列1,0()0,0n n n δ⎧=⎪=⎨≠⎪⎩例2.1:用MA TLAB 产生64点的单位冲激序列clear all;N=64;x=zeros(1,N);x(1)=1;xn=0:N-1;stem(xn,x)axis([-1 65 0 1.1])2、 任意序列()()()m f n f m n m δ∞=-∞=-∑例2.2:用MA TLAB 画出如下表达式的脉冲序列()8.0() 3.4(1) 1.8() 5.6(3) 2.9(4)0.7(5)f n n n n n n n δδδδδδ=+-++-+-+-clear all;N=8;x=zeros(1,N);x(1)=8.0;x(2)=3.4x(3)=1.8;x(4)=5.6;x(5)=2.9;x(6)=0.7;xn=0:N-1;stem(xn,x)axis([-1 8 0 8.2])3、 单位阶跃序列1,0()0,0n u n n ⎧≥⎪=⎨<⎪⎩例2.3:用MA TLAB 实现单位阶跃函数clear all;N=32;x=ones(1,N);xn=0:N-1;stem(xn,x)axis([-1 32 0 1.1])4、 斜坡序列0()()g n B n n =-例2.4:用MA TLAB 实现g(n)=3(n-4)点数为32的斜坡序列clear all;N=32;k=4B=3;t0=1;x=[zeros(1,k) ones(1,N-k)];for i=1:Nx(i)=B*x(i)*(i-k);endxn=0:N-1;stem(xn,x)axis([-1 32 0 90])5、 正弦序列()sin(2)x n A fn πϕ=+例2.5:用MA TLAB 实现幅度A=3,频率f=100,初始相位Φ=1.2,点数为32的正弦信号 clear all;N=32;A=3;f=100;fai=1.2;xn=0:N-1;x=A*sin(2*pi*f*(xn/N)+fai);stem(xn,x)axis([-1 32 -3.2 3.2])6、 实指数序列()n x n Aa =例2.6:用MA TLAB 实现0.7()3x n e =,点数为32的实指数序列clear all;N=32;A=3;a=0.7;xn=0:N-1;x=A*a.^xn;stem(xn,x)7、 复指数序列()(),a j n x n Ae n ω+=∀例2.7:用MA TLAB 实现幅度A=3,a=0.7,角频率ω=314,点数为32的实指数序列 clear all;N=32;A=3;a=0.7;w=314;xn=0:N-1;x=A*exp((a+j*w)*xn);stem(xn,x)8、 随机序列利用MATLAB 产生两种随机信号:rand(1,N)在区间上产生N 点均匀分布的随机序列randn(1,N)产生均值为0,方差为1的高斯随机序列,即白噪声序列例2.8:用MA TLAB 产生点数为32的均匀分布的随机序列与高斯随机序列clear all;N=32;x_rand=rand(1,N);x_randn=randn(1,N);xn=0:N-1;figure(1);stem(xn,x_rand)figure(2);stem(xn,x_randn)(三)、离散信号的基本运算1、 信号的延迟给定离散信号x(n),若信号y(n)定义为:y(n)=x(n-k),那么y(n)是信号x(n)在时间轴上右移k 个抽样周期得到的新序列。
信号与系统实验(MATLAB 西电版)实验12 离散傅里叶变换
实验12 离散傅里叶变换
4) (1) 用FFT计算以下两个序列的互相关函数rxy(m)
x(n)={1 3 -1 1 2 3 3 1 y(n)={2 1 -1 1 2 0 -1 3}
实验12 离散傅里叶变换
MATLAB x=[1 3 -1 1 2 3 3 1]; % y=[2 1 -1 1 2 0 -1 3]; k=length(x); xk=fft(x,2*k); yk=fft(y,2*k); rm=real(ifft(conj(xk).*yk)); rm=[rm(k+2:2*k) rm(1:k)]; m=(-k+1):(k-1); stem(m,rm); xlabel(′m′); ylabel(′幅度′); 序列互相关函数的计算结果如图12.4
subplot(2,2,4); stem(n2,xk2) xlabel(′k′); ylabel(′X(k)′); 离散傅里叶变换及其快速计算结果如图12.3
实验12 离散傅里叶变换 图 12.3 离散傅里叶变换及其快速计算
实验12 离散傅里叶变换
在图12.3中, (a)和(b)分别是N=20时的截取信号和DFT结 果,由于截取了两个半周期,频谱出现泄漏; (c) 和(d)分别是 N=16时的截取信号和DFT结果,由于截取了两个整周期,得 到单一谱线的频谱。上述频谱的误差主要是由于时域中对信 号的非整周期截断产生的频谱泄漏。
(1) 通过本实验的练习,了解离散时间信号时域运算的 基本实现方法;
(2) 了解相关函数的调用格式及作用; (3) 通过本实验,掌握离散时间信号时域基本运算的原
利用离散域快速傅里叶变换或反变换。
实验12 离散傅里叶变换
三、涉及的MATLAB
fft
实验3 离散序列的傅里叶变换的MATLAB实现
信息工程学院实验报告课程名称:数字信号处理实验项目名称:实验3 离散序列的傅里叶变换的MATLAB 实现 实验时间:班级: 姓名: 学号:一、实 验 目 的:熟悉离散序列的傅里叶变换理论及其MATLAB 实现。
二、实 验 设 备 与 器 件MATLAB 2008软件三、实 验 内 容 与 结 果 分 析3.1 在0到 区间画出矩形序列10()R n 的离散时间傅里叶变换(含幅度和相位)。
指令语句如下:n=-10:10;x=[(n>=0)&(n<10)];k=-200:200;w=(pi/200)*k;X=x*(exp(-j*pi/200)).^(n'*k);magX=abs(X);angX=angle(X);subplot(2,1,1);plot(w,magX,'LineWidth',2);xlabel('Frequency');ylabel('|X|');grid on ;subplot(2,1,2);plot(w,angX,'LineWidth',2);xlabel('Frequency');ylabel('Angle');grid on ;执行结果如图3-1所示:Frequency |X |Frequency A n g l e图3-13.2 求序列x(n)=1,-2≤n ≤2的离散时间傅里叶变换(含幅度和相位)。
指令语句如下:n=-10:10;x=[(n>=-2)&(n<2)];k=-200:200;w=(pi/200)*k;X=x*(exp(-j*pi/200)).^(n'*k);magX=abs(X);angX=angle(X);subplot(2,1,1);plot(w,magX,'LineWidth',2);xlabel('Frequency');ylabel('|X|');grid on ;subplot(2,1,2);plot(w,angX,'LineWidth',2);xlabel('Frequency');ylabel('Angle');grid on ;执行结果如图3-2所示:-4-3-2-10123401234Frequency |X |-4-3-2-101234-4-224Frequency A n g l e图3-24.思考题4.1什么是共轭对称性?结合例2-1加以分析。
基于Matlab的数字图像离散傅里叶变换及应用
图像平滑 的过程 ,但此时 图像 的边缘清晰度 可能会降低 ,图像 变模 糊 的 实 质 是 高 频 分量 被 衰 减 。
[ 1 】 赵 小 川 ,何 灏 ,缪 远 诚 . MA T L A B数 字 图像 处 理 实践 [ M】 . 北 京 :机 械 工 业 出版 社 ,2 0 1 3 :4 2 -7 5 . 【 2 2徐献灵 ] ,袜弈水 . Ma t l a b在图像处理中 的应用 [ J 】 . 现 代计 算机 ,2 0 0 8 ,2 8 3 :6 6 - 6 9 . 【 3 1 郝强 ,赵 何 明,张毅 . 基 于 MA T L A B的数 字图像处 理技 术 与应 用 [ J 】 . 河 北 农 机 ,2 0 1 4 , ( 1 I ) :4 4 - 4 6 . [ 4 】 王斌 . MA T L A B实现 数字图像 增强处理 [ J 】 . 佳木斯大 学学 报 ( 自然 科 学 版 ) ,2 0 0 5 ,2 3( 1 ) :3 1 - 3 4 . 【 5 】 于 殿 泓 .图像 检 测 与处 理 技 术 【 M】 . 西安 : 西 安 电子 科 技 大 学 出版 社 ,2 0 0 6 :1 1 0 -1 2 3 .
增 强 技 术 有 两 类 方 法 :空 间 域 法 和 频 率 域 法 。 空 间 域 法 是在 空 间 域
少模糊 ,会使模糊的边缘部分得到增强。这就是 用 DF T进 行图像平
中对数 字图像的像 素灰 度值直接进行 运算处理 ;而频 率域 法是在数 滑和边缘提取的依据 。 字 图像 先进行某种变换 域 ,再对变换 值进行运算 。本文 中采用频 率 域法 ,先对 图像进 行 DF T,再对 图像频谱进行滤波 ,然后将 滤波后
用matlab实现离散傅里叶变换
用Matlab实现离散傅里叶变换1. 简介离散傅里叶变换(Discrete Fourier Transform,DFT)是一种将时域信号转换为频域信号的方法。
它可以将一个离散序列表示为一组正弦和余弦函数的线性组合。
在信号处理、图像处理、通信等领域中广泛应用。
Matlab是一款功能强大的数学建模和仿真软件,内置了丰富的工具箱,包括用于计算和可视化离散傅里叶变换的函数。
在本文中,我们将使用Matlab来实现离散傅里叶变换,并介绍其基本原理和应用场景。
2. 离散傅里叶变换的基本原理离散傅里叶变换是对一个长度为N的离散序列进行频域分析的方法。
假设输入序列为x(n),其中0 ≤ n ≤ N-1。
那么其离散傅里叶变换X(k)定义如下:其中,e是自然对数的底数,i是虚数单位。
离散傅里叶变换将输入序列x(n)分解为N个复数的和,每个复数表示了不同频率上的振幅和相位。
3. Matlab实现离散傅里叶变换在Matlab中,我们可以使用fft函数来计算离散傅里叶变换。
该函数接受一个向量作为输入,并返回其对应的离散傅里叶变换结果。
下面是一个简单的示例代码,演示了如何使用Matlab实现离散傅里叶变换:% 定义输入序列x = [1, 2, 3, 4];% 计算离散傅里叶变换X = fft(x);% 打印结果disp(X);运行以上代码,将输出计算得到的离散傅里叶变换结果。
在本例中,输入序列为[1, 2, 3, 4],输出结果为[10+0i, -2+2i, -2+0i, -2-2i]。
每个复数表示了不同频率上的振幅和相位。
4. 离散傅里叶变换的应用场景离散傅里叶变换在信号处理和图像处理领域有着广泛的应用。
下面介绍几个常见的应用场景:4.1 音频信号处理离散傅里叶变换可以将音频信号从时域转换到频域,分析音频信号中不同频率上的成分。
这对于音频压缩、语音识别、音乐分析等任务非常重要。
4.2 图像处理离散傅里叶变换可以将图像从空域转换到频域,分析图像中不同空间频率上的成分。
数字信号处理实验 matlab版 离散傅里叶变换(DFT)
>> xn1=xn(mod(n,N)+1); %即xn1=[xn,xn,xn,xn]
>> Xk=xn1*exp(-j*2*pi/N).^(n'*k);%离散傅里叶变换
>> subplot(2,2,1),stem(xn);%显示序列主值
>> title('原主值信号x(n)');
>>N=length(xn);
>>n=0:N-1;
>> w=linspace(-2*pi,2*pi,500);%将[-2p,2p]频率区间分割为500份
>> X=xn*exp(-j*n'*w);%离散时间傅里叶变换
>>subplot(3,1,1),stem(n,xn,'k');
>>ylabel('x(n)');
解MATLAB程序如下:
>> xn=[7,6,5,4,3,2];
>> N=length(xn);
>> n=0:N-1;
>> w=linspace(-2*pi,2*pi,500);%将[-2p,2p]频率区间分割为500份
>> X=xn*exp(-j*n'*w);%离散时间傅里叶变换
>> subplot(3,1,1),stem(n,xn,'k');
(12-2)
从离散傅里叶变换定义式可以看出,有限长序列在时域上是离散的,在频域上也是离散的。式中, 即仅在单位圆上N个等间距的点上取值,这为使用计算机进行处理带来了方便。
实验3离散序列的傅里叶变换的MATLAB实现
实验3 离散序列的傅里叶变换的MATLAB 实现1. 实验目的熟悉离散序列的傅里叶变换理论及其MATLAB 实现。
2。
实例分析2.1离散序列傅里叶变换的MATLAB 实现例2。
1 已知()(0.9),1010n x n n =--≤≤,求其离散时间傅里叶变换,并讨论其共轭对称性. 根据离散序列傅里叶变换公式:()()j j n n X e x n e ωω∞-=-∞=∑,将下列指令编辑到 “exe2dtft.m" 文件中。
其中,并以pi/100为间隔取值.% exe2dtft.m 序列的离散时间傅里叶变换n=—10:10; x=(—0。
9).^n;k=-200:200; w= (pi/100)*k ;X=x*(exp (-j*pi/100)).^(n'*k);magX=abs(X);angX=angle(X );subplot(2,1,1);plot (w,magX);xlabel(’Frequency');ylabel('|X|’);grid on; subplot(2,1,2);plot (w ,angX );xlabel('Frequency');ylabel(’Angle’);grid on;运行“exe2dtft.m ” 文件将产生如图2-3所示的序列。
由图2-3可知,()j X e ω不仅是ω的周期函数,而且是共轭对称的.因此,对于实值序列,只需从0到π画出他们的傅里叶变换的幅度和相位就够了。
图2-1 离散序列的DTFT2.2离散系统差分方程的MATLAB 求解方法例2。
2 一个三阶低通滤波器由下面差分方程描述:()0.0181()0.0543(1)0.0543(2)0.0181(3)1.76(1) 1.1829(2)0.2781(3)y n x n x n x n x n y n y n y n =+-+-+-+---+- 画出这个滤波器的幅度和相位响应。
数字信号处理实验 matlab版 离散傅里叶变换的性质
实验13 离散傅里叶变换的性质(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)XXXX学号姓名处XXXX一、实验目的1 加深对离散傅里叶变换(DFT)基本性质的理解。
2 了解有限长序列傅里叶变换(DFT)性质的研究方法。
3 掌握用MATLAB语言进行离散傅里叶变换性质分析时程序编写的方法。
二、实验内容1 线性性质。
2 循环移位性质。
3 循环折叠性质。
4 时域和频域循环卷积特性。
5 循环对称性。
三、实验环境MA TLAB7.0四、实验原理1 线性性质如果两个有限长序列分别为x1(n)和x2(n),长度分别为N1和N2,且y(n)=ax1(n)+bx2(n) (a、b均为常数)则该y(n)的N点DFT为Y(k)=DFT[y(n)]=aX1(k)+bX2(k) 0≤k≤N-1其中:N=max[N1,N2],X1(k)和X2(k)分别为x1(n)和x2(n)的N点DFT。
例13-1已知x1(n)=[0,1,2,4],x2(n)=[1,0,1,0,1],求:(1)y(n)=2x1(n)+3x2(n),再由y(n)的N点DFT获得Y(k);(2)由x1(n)、x2(n)求X1(k)、X2(k),再求Y(k)=2X1(k)+3X2(k)。
用图形分别表示以上结果,将两种方法求得的Y(k)进行比较,由此验证有限长序列傅里叶变换(DFT)的线性性质。
解MA TLAB程序如下:>> xn1=[0,1,2,4]; %建立xn1序列>> xn2=[1,0,1,0,1]; %建立xn2序列>> N1=length(xn1);N2=length(xn2);>> N=max(N1,N2); %确定N>> if N1>N2 xn2=[xn2,zeros(1,N1-N2)]; %对长度短的序列补0>> elseif N2>N1 xn1=[xn1,zeros(1,N2-N1)];>> end>> yn=2*xn1+3*xn2; %计算yn>> n=0:N-1;k=0:N-1;>> Yk1=yn*(exp(-j*2*pi/N)).^(n'*k); %求yn的N点DFT>> Xk1=xn1*(exp(-j*2*pi/N)).^(n'*k); %求xn1的N点DFT >> Xk2=xn2*(exp(-j*2*pi/N)).^(n'*k); %求xn2的N点DFT >> Yk2=2*Xk1+3*Xk2; %由Xk1、Xk2求Yk>> subplot(4,2,1),stem(n,xn1);>> title('x1(n)');>> subplot(3,2,2),stem(n,Xk1);>> title('X1(k)');>> subplot(4,2,3),stem(n,xn2);>> title('x2(n)');>> subplot(3,2,4),stem(n,Xk2);>> title('X1(k)');>> subplot(4,2,5),stem(n,yn);>> title('yn');>> subplot(3,2,6),stem(n,Yk2);>> title('2*Xk1+3*Xk2');>> subplot(4,2,7),stem(n,Yk1);>> title('DFT[y(n)]');求得的Y(k),如下所示:Yk=23.0000 -7.5902+1.5388i 3.5902-0.3633i3.5902+0.3633i -7.5902-1.5388i运行结果如图13-1所示。
matlab编程实现傅里叶变换
傅里叶变换是信号处理和图像处理中的重要数学工具,可以将一个信号或图像从时域转换到频域。
MATLAB作为一款强大的数学软件,可以方便地实现傅里叶变换并进行相应的分析和处理。
本文将介绍如何使用MATLAB编程实现傅里叶变换,并探讨其在信号处理和图像处理中的应用。
一、MATLAB中的傅里叶变换函数在MATLAB中,可以使用fft函数来进行一维离散傅里叶变换(DFT)的计算,使用fft2函数进行二维离散傅里叶变换(DFT)的计算。
这两个函数的基本语法如下:1. 一维离散傅里叶变换Y = fft(X)其中,X是输入的一维信号(向量),Y是输出的一维频谱(向量)。
2. 二维离散傅里叶变换Y = fft2(X)其中,X是输入的二维图像(矩阵),Y是输出的二维频谱(矩阵)。
除了fft和fft2函数外,MATLAB还提供了ifft和ifft2函数用于进行离散傅里叶逆变换。
通过这些函数,我们可以方便地实现傅里叶变换和逆变换的计算。
二、MATLAB中的傅里叶变换实例为了更好地理解MATLAB中的傅里叶变换实现,我们可以通过一个具体的实例来进行演示。
假设我们有一个包含两个正弦波的信号,我们首先可以使用MATLAB生成这个信号,并对其进行傅里叶变换。
生成信号fs = 1000; 采样频率为1000Hzt = 0:1/fs:1-1/fs; 时间范围为1秒f1 = 50; 第一个正弦波的频率为50Hzf2 = 120; 第二个正弦波的频率为120Hzx = 0.7*sin(2*pi*f1*t) + sin(2*pi*f2*t); 生成包含两个正弦波的信号进行傅里叶变换N = length(x); 信号的长度X = fft(x)/N; 进行离散傅里叶变换,并进行归一化处理f = (0:N-1)*(fs/N); 计算频率轴figure;subplot(2,1,1);plot(f,abs(X)); 绘制频谱幅度title('单边频谱');xlabel('频率/Hz');ylabel('幅度');subplot(2,1,2);plot(f,angle(X)); 绘制频谱相位title('频谱相位');xlabel('频率/Hz');ylabel('相位');通过上面的实例,我们可以看到,MATLAB可以很方便地实现最常见的傅里叶变换,并且提供了丰富的绘图功能来呈现变换结果。
用Matlab对信号进行傅里叶变换实例
目录用Matlab对信号进行傅里叶变换 (2)Matlab的傅里叶变换实例 (5)Matlab方波傅立叶变换画出频谱图 (7)用Matlab对信号进行傅里叶变换1.离散序列的傅里叶变换DTFT(Discrete Time Fourier Transform)代码:1 N=8; %原离散信号有8点2 n=[0:1:N-1] %原信号是1行8列的矩阵3 xn=0.5.^n; %构建原始信号,为指数信号45 w=[-800:1:800]*4*pi/800; %频域共-800----+800 的长度(本应是无穷,高频分量很少,故省去)6 X=xn*exp(-j*(n'*w)); %求dtft变换,采用原始定义的方法,对复指数分量求和而得7 subplot(311)8 stem(n,xn);9 title('原始信号(指数信号)');10 subplot(312);11 plot(w/pi,abs(X));12 title('DTFT变换')结果:分析:可见,离散序列的dtft变换是周期的,这也符合Nyquist 采样定理的描述,连续时间信号经周期采样之后,所得的离散信号的频谱是原连续信号频谱的周期延拓。
2.离散傅里叶变换DFT(Discrete Fourier Transform)与1中DTFT不一样的是,DTFT的求和区间是整个频域,这对结果图:分析:DFT只是DTFT的现实版本,因为DTFT要求求和区间无穷,而DFT只在有限点内求和。
3.快速傅里叶变换FFT(Fast Fourier Transform)虽然DFT相比DTFT缩减了很大的复杂度,但是任然有相当大的计算量,不利于信息的实时有效处理,1965年发现的DFT解决了这一问题。
实现代码:1 N=64; %原离散信号有8点2 n=[0:1:N-1] %原信号是1行8列的矩阵3 xn=0.5.^n; %构建原始信号,为指数信号4 Xk=fft(xn,N);5 subplot(221);6 stem(n,xn);7 title('原信号');8 subplot(212);9 stem(n,abs(Xk));10 title('FFT变换')效果图:分析:由图可见,fft变换的频率中心不在0点,这是fft算法造成的,把fft改为fftshift可以将频率中心移到0点。
北邮数字信号处理Matlab仿真实验
《数字信号处理》Matlab 实验一.离散信号的 FFT 分析知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。
实验教学内容:1.用Matlab 编程上机练习。
已知: N=25。
这里Q=0.9+j0.3。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:format long Q=0.9+0.3i;WN=exp(-2*pi*1i/32);Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25)difference=Xk(k0)-Xkfft(k0); end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]);subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]);0n N-1()0 n 0, n Nn Q x n ⎧≤≤=⎨<≥⎩11,011)()()(kk1nk1-=--===∑∑-=-=N k QW Q QW W n x k X NNnN N n NN n ,2. 假设信号 x(n) 由下述信号组成:请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
傅里叶变换特性matlab仿真3
3-231 题目要求已知序列x(n)={1, 2, 3, 3, 2, 1}。
1)求出x(n)的傅里叶变换X(ejω),画出幅频特性和相频特性曲线(提示:用1024点FFT近似X(ejω));2)计算x(n)的N(N≥6)点离散傅里叶变换X(k),画出幅频特性和相频特性曲线;3)将X(ejω)和X(k)的幅频特性和相频特性曲线分别画在同一幅图中,验证X(k)是X(ejω)的等间隔采样,采样间隔为2π/N;4)计算X(k)的N点IDFT,验证DFT和IDFT的惟一性。
2 题目分析(1)题用1024点DFT近似x(n)的傅里叶变换。
(2)题用32点DFT。
(3)题由图(e)(f)可验证。
(4)题图(g) 验证了IDFT的惟一性。
3程序源码clear all;close all;xn=[1 2 3 3 2 1]; %输入时域序列向量x(n)N=32;M=1024;Xjw=fft(xn,M); %计算xn的1024点DFT,近似表示序列的傅里叶变换Xk32=fft(xn,N); %计算xn的32点DFTxn32=ifft(Xk32,N); %计算Kk32的32点IDFT%以下为绘图部分k=0:M-1;wk=2*k/M; %产生M点DFT对应的采样点频率(关于π归一化值) subplot(3,2,1);plot(wk,abs(Xjw)); %绘制M点DFT的幅频特性图title('(a) FT[x(n)]的幅频特性图');xlabel('ω/π');ylabel('幅度') subplot(3,2,3);plot(wk,angle(Xjw)); %绘制x(n)的相频特性图line([0,2],[0,0]) %画横坐标轴线title('(b)FT[x(n)]的相频特性图');xlabel('ω/π');ylabel('相位');%axis([0,2,-3.5,3.5])k=0:N-1;subplot(3,2,2);stem(k,abs(Xk32),'.'); %绘制64点DFT的幅频特性图title('(c)32点DFT的幅频特性图');xlabel('k');ylabel('幅度');axis([0,32,0,15])subplot(3,2,4);stem(k,angle(Xk32),'.'); %绘制64点DFT的相频特性图line([0,32],[0,0]) %画横坐标轴线title('(d)32点DFT的相频特性图')xlabel('k');ylabel('相位');axis([0,32,-3.5,3.5])figure(2)k=0:M-1;wk=2*k/M; %产生M点DFT对应的采样点频率(关于π归一化值) subplot(3,2,1);plot(wk,abs(Xjw)); %绘制M点DFT的幅频特性图title('(e) FT[x(n)]和32点DFT[x(n)]的幅频特性');xlabel('ω/π');ylabel('幅度')hold onsubplot(3,2,3);plot(wk,angle(Xjw)); %绘制x(n)的相频特性图title('(f)FT[x(n)]和32点DFT[x(n)]的相频特性');xlabel('ω/π');ylabel('相n)]位');hold onk=0:N-1;wk=2*k/N; %产生N点DFT对应的采样点频率(关于π归一化值) subplot(3,2,1);stem(wk,abs(Xk32),'.'); %绘制64点DFT的幅频特性图subplot(3,2,3);stem(wk,angle(Xk32),'.'); %绘制64点DFT的相频特性图line([0,2],[0,0]);n=0:31;subplot(3,2,2);stem(n,xn32,'.');title('(g)32点IDFT[X(k)]波形');xlabel('n');ylabel('x(n)');4 输出如图3-251题目要求已知序列h(n)=R6(n), x(n)=nR8(n)。
matlab数字信号处理仿真
matlab数字信号处理仿真第一实验室:基础实验篇第Ⅰ部分基本训练题目第Ⅱ部分简介各题目的原理、程序、效果第Ⅲ部分基研训练程序软件压缩文件第Ⅰ部分基本训练题目1-1-1 序列的图示方法 DSP11011-1-2 连续信号及采样信号的图示方法 DSP 11021-1-3单位冲激序列函数impseq单位冲激序列图示 DSP 11031-1-4 单位阶跃序列函数stepseq单位阶跃序列图示 DSP11041-1-5 矩形序列)(n R N 及图示 DSP11051-1-6 实指数序列)(n a n ε及图示 DSP11061-1-7 正弦序列)sin(n *ω及图示 DSP11071-1-8 复指数序列n jm e *+)(σ及图示 DSP11081-1-9 周期序列)()(N n x n x +=及图示 DSP 11091-1-10 常用5种连续信号及图示 DSP11101-1-11 离散序列的运算 DSP11111-1-12 输入序列)(n x 与系统冲激响应)(n h 的卷积),(h x conv DSP11121-1-13 非零起点时两信号的卷积),(h x convm DSP11131-2-1 指数序列)(8.0)(n n x n ε=的离散时间傅立叶变换DSP 12011-2-2 矩形序列)(n R N 的离散时间傅立叶变换 DSP12021-2-3 离散时间傅立叶变换的性质 DSP12031-2-4 正弦序列输入,输出为正弦序列,幅度相位因)(ωj e H 变化DSP1204 1-2-5 模拟信号t a e t x 1000)(-=付氏变换与采样信号的离散时间傅立叶变换DSP 12051-3-1 N 点离散傅立叶变换 dft(xn,N)1-3-2 N 点离散傅立叶反变换 idft(xn,N)1-3-3 DFT 与)(n x 的Z 变换关系 DSP13031-3-4 DFT 与)(n x 的离散时间傅立叶变换的关系 DSP 13041-3-5 有限长序列添零填充,得高密度DFT ,离散时间付氏频谱不变DSP1305 1-3-6 采样点增多的高分辨率DFT ,采样点数少仅添零的高密度DFT DSP1306 1-3-7 DFT 的圆周移位函数cirshftt 1-3-8 DFT 圆周移位实例 DSP13081-3-9 圆周卷积 DSP13091-3-10 复共轭序列的DFT DSP13101-3-11 DFT 的共轭对称性 DSP 13111-3-12 补零填充实现线性卷积 DSP13121-3-13 重迭保留法实现线性卷积 DSP13131-3-14 重迭保留实现函数 ovrlpsav1-3-15 DET 对连续信号作近似谱分析:滤高频,避免混迭频谱;截高时;变有限长序列,避免泄漏频谱 DSP13151-3-16 采样点为100,进行200点DFT ,对)(t e t ε-进行谱分析DSP 1316 1-3-17 实序列的奇偶分解及DFT 的虚实分量 DSP1317 1-3-18 实序列的奇偶分解函数 DSP13181-3-19 用FFT 分析信号频率成分 DSP13191-3-20 用FFT 分析语言信号的频谱 DSP13201-3-21 DCT 变换 DSP13211-3-22 用DCT 变换进行语言压缩 DSP13221-3-23 线性调频Z 变换 DSP13231-3-24 利用CZT 计算滤波器100—150HZ 频率特性的细节DSP13242-1-1 直接型实现系统函数H (Z )的IIR 数字滤波器 DSP 2101 2-1-2 级联型实现系统H (Z )的IIR 数字滤波器 DSP21022-1-3 级联型实现H (Z )的IIR 数字滤波器 DSP21032-1-4 直接型实现H (Z )的IIR 数字滤波器 DSP21042-1-5 并联型实现H (Z )的IIR 数字滤波器 DSP 21052-1-6 并联型 DSP 21062-1-7 直接型 DSP21072-1-8 最终的级联,并联 DSP21082-1-9 直接型?级联型 dir2cas(b,a)2-1-10 级联型→直接型 cas2par(b0,B,A)2-1-11 直接型→并联型 dir2par2-1-12 并联型→直接型 par2dire2-1-13 并联型→级联型 casfilter2-1-14 级联型→并联型 parfilter2-2-1 FIR 直接型滤波器 DSP 22012-2-2 FIR 级联型滤波器 DSP22022-2-3 FIR 的频率取样形式结构 DSP 22032-2-4 (原例11)由频率样本{2,1,0315,......5,415.00)(====k k k k H求频率采样形式,及单位冲激响应)(n h DSP22042-2-5 窄带滤波器中的频率采取滤波器是由直接型转换为频率采样型 dir2fs(n)3-1-1 偶对称奇序列的⒈型FIR 滤波器的振幅响应 hr_type13-1-2 偶对称奇序列的)(ωH 及零极点分布 DSP31023-1-3 偶对称偶序列的Ⅱ型FIR 滤波器的振幅响应 hr_type23-1-4 偶对称偶序列的)(ωH 及零极点分布 DSP31043-1-5 奇对称奇序列的Ⅲ型FIR 滤波器的振幅响应 hr_type33-1-6 奇对称奇序列的)(ωH 及零极点分布 DSP31063-1-7 奇对称偶序列的Ⅳ型FIR 滤波器的振幅响应 hr_type43-1-8 奇对称偶序列的)(ωH 及零极点分布 DSP31083-1-9 线性相位FIR 滤波器的零点位置有4种可能 DSP31093-1-10 常用加窗函数 DSP32103-1-11 对信号用加窗函数的DFT 分析频谱 DSP32113-2-1 计算理想低通滤波器的)(n h a DSP32013-2-2 计算FIR 滤波器的绝对和相对的幅度响应 DSP32023-2-3 提取大于50dB 衰减的汉明窗FIR 低通滤波器 DSP3203 3-2-4 理想高通,偶对称因果序列,N 为奇的窗函数,滤波器的单位冲激响应)(n h d DSP32043-2-5 汉宁窗,44dB 最小阻带衰减,过度带N π2.6 DSP3205 3-2-6 理想高通,奇对称因果序列,N 为偶的窗函数,滤波器的单位冲激响应)(n h d DSP32063-2-7 汉宁窗,44dB 最小阻带衰减,过度带N π2.6 DSP3207 3-2-8 理想高通,偶对称因果序列,N 为奇的窗函数,滤波器的单位冲激响应)(n h d DSP32083-2-9 设计一个数字FIR 带通滤波器 DSP32093-2-10 理想带通数字滤波器的频率响应)(e H jw d DSP3210 3-2-11 设计一个具有2π相移的数字FIR 带通滤波器 DSP3211 3-2-12 理想带阻,偶对称因果序列,N 为奇的窗函数,滤波器的单位冲激响应)(n h d ideal-be()3-2-13 设计一个数字FIR带阻滤波器DSP32133-3-1 采样点ω=0处的频率采样法DSP33013-3-2 在过渡带上加两个T1和T2 DSP33023-3-3 设计2型FIR低通滤波器 DSP33033-3-4 设计1型FIR高通滤波器 DSP33043-3-5 设计4型FIR高通滤波器 DSP33053-3-6 设计2型FIR带通滤波器 DSP33063-3-7 设计1型FIR带阻滤波器 DSP33073-3-8 设计1型FIR低通滤波器 DSP33083-3-9 设计1型FIR高通滤波器 DSP33093-3-10 设计4型FIR高通滤波器 DSP33103-3-11 设计3型FIR带通滤波器 DSP33113-4-1 用频率响应采样法1设计具有线性相位 DSP34013-4-2 用窗函数法设计具有线性相位 DSP34023-4-3 用频率采样法1设计低通滤波器对其进行除噪 DSP3403 4-1-1 在MATLAB中用afd_butt(Omegap,Omegar,Ap,Ar)函数来设计巴特沃斯模拟低通滤波器 DSP41014-1-2 若设计非归一化(Ωc≠1)巴特沃斯模拟低通滤波器原型DSP4102 4-1-3 freqs_m(b,a,Omega_max)函数 DSP4103 4-1-4 sdir2cas函数 DSP41044-1-5 设计一个巴特沃斯模拟滤波器 DSP41054-2-1 用来实现N阶、通带波动为δ的归一化切比学夫1型模拟低通滤波器DSP42014-2-2 根据技术指标设计切比学夫1型模拟滤波器 DSP42024-2-3 设计一个低通切比学夫1型滤波器 DSP42034-2-4 设计归一化切比学夫2型模拟滤波器 DSP42044-2-5 根据给定指标设计切比学夫2型模拟滤波器 DSP42054-2-6 设计一个切比学夫2型低通滤波器 DSP42064-3-1 用imp_invr函数实现脉冲响应不变法DSP 43014-3-2 设计一个巴特沃斯模拟滤波器 DSP43024-3-3 设计低通数字滤波器 DSP43034-3-4 设计低通数字滤波器 DSP43044-4-1 双线性变换法设计低通数字滤波器 DSP44014-4-2 切比雪夫滤波器原型用双线性变换法设计低通数字滤波器DSP44024-5-14-5-24-5-34-5-4 分别设计一个巴特沃斯滤波器和切比雪夫高通滤波器DSP45044-5-5 分别设计一个巴特沃斯滤波器和切比雪夫高通滤波器DSP45054-5-6 设计一个巴特沃斯带通滤波器 DSP45064-5-7 设计一个切比雪夫带通滤波器 DSP45074-5-8 设计一个滤波器 DSP45084-5-9 设计一个滤波器 DSP45094-5-10 设计一个滤波器 DSP45104-6-1 zampping DSP46014-6-2用zmapping函数实现例11中的高通滤波器 DSP4602 4-6-3切比雪夫1型高通数字滤波器,上述过程由chebhpf函数实现 DSP4603 4-6-4用数字频域变换法,设计一个切比雪夫1型高通数字滤波器 DSP46044-6-5 用双线性变换法设计低通滤波器 DSP46054-6-6 用脉冲响应不变法设计的低通滤波器对其除噪 DSP4606 4-6-7 模拟信号DSP46075-1-1下采样DSP 51015-1-2 例题DSP51025-1-3上采样DSP51035-1-4 程序DSP51045-1-5 采样率的非整数倍转换DSP51055-1-6 程序DSP51065-1-7 例题DSP51075-1-8 用傅立叶变换对信号进行消噪声处理DSP51085-1-9 信号特定频率的提取DSP51095-1-10例题DSP51105-1-11信号特定频率区间的抑制DSP5111第Ⅱ部分简介各题目的原理、程序、效果1-1-1 序列的图示方法DSP1101原理:数字信号处理中,所有信号都是离散时间信号——序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字信号处理设计报告书
课题名称
应用MATLAB 对信号进行频谱分析及
滤波
姓 名 何 晨
学 号 20076089 院、系、部
电气系
专 业 电子信息工程 指导教师
刘鑫淼
2010年 6 月27日
※※※※※※※※※ ※※ ※
※ ※※ ※※
※※※※※
※※
2007级数字信号处理 课程设计
应用MATLAB对信号进行频谱分析及滤波
20076089 何晨
一、设计目的
要求学生会用MATLAB语言进行编程,绘出所求波形,并且运用FFT求对连续信号进行分析。
二、设计要求
1、用Matlab产生正弦波,矩形波,并显示各自的时域波形图;
2、进行FFT变换,显示各自频谱图,其中采样率、频率、数据长度自选,要求注明;
3、绘制三种信号的均方根图谱;
4、用IFFT回复信号,并显示恢复的正弦信号时域波形图。
三、系统原理
用FFT对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行频谱分析的信号是模拟信号和时域离散信号。
频谱分辨率直接和FFT的变换区间N 有关,因为FFT能够实现频率分辨率是2π/N。
x(n)是一个长度为M的有限长序列,则x(n)的N点离散傅立叶变换为:
X(k)=DFT[x(n)]=
kn
N
W
N
n
n
x
∑
-
=
1
)
(
,k=0,1,...,N-1
N
j
e
N
Wπ2-
=
逆变换:x(n) =IDFT[X(k)]=
kn
N
W
k
X
N
n
N
-
∑
-
=
1
)
(
1
,k=0,1,...,N-1
但FFT是一种比DFT更加快速的一种算法,提高了DFT的运算速率,为数字信号处理技术应用于各种信号处理创造了条件,大大提高了数字信号处理技术的发展。
本实验就是采用FFT,IFFT对信号进行谱分析。
四、程序设计
fs=input('please input the fs:');%设定采样频率
N=input('please input the N:');%设定数据长度
t=0:0.001:1;
f=100;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f*t);
figure(1);
subplot(211);
plot(t,x);%作正弦信号的时域波形
axis([0,0.1,-1,1]);
title('正弦信号时域波形');
z=square(50*t);
subplot(212)
plot(t,z)
axis([0,1,-2,2]);
title('方波信号时域波形');grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);
subplot(211);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('正弦信号幅频谱图');
y1=fft(z,N);%进行fft变换
mag=abs(y1);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('方波信号幅频谱图');grid;
%求功率谱
sq=abs(y);
power=sq.^2;
figure(3)
subplot(211);
plot(f,power);
title('正弦信号功率谱');grid;
sq1=abs(y1);
power1=sq1.^2;
subplot(212);
plot(f,power1);
title('方波信号功率谱');grid;
%用IFFT恢复原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(4);
subplot(211);
plot(ti,magx);
axis([0,0.1,-1,1]);
title('通过IFFT转换的正弦信号波形');
zifft=ifft(y1);
magz=real(zifft);
ti1=[0:length(zifft)-1]/fs;
subplot(212);
plot(ti1,magz);
title('通过IFFT转换的方波信号波形');grid;
五、仿真结果及分析
由图可以看出正弦波周期T=0.01,采样点N=1024.程序为:x=sin(2*pi*f*t);
figure(1);
subplot(211);
plot(t,x);%作正弦信号的时域波形
axis([0,0.1,-1,1]);
title('正弦信号时域波形');
z=square(50*t);
subplot(212)
plot(t,z)
axis([0,1,-2,2]);
title('方波信号时域波形');grid;
2、对正弦波、方波信号进行FFT变换程序:
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; figure(2);
subplot(211);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('正弦信号幅频谱图');
y1=fft(z,N);%进行fft变换
mag=abs(y1);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M; subplot(212);
plot(f,mag);%做频谱图
axis([0,1000,0,200]);
title('方波信号幅频谱图');grid;
正弦信号、方波信号功率谱程序:sq=abs(y);
power=sq.^2;
figure(3)
subplot(211);
plot(f,power);
title('正弦信号功率谱');grid; sq1=abs(y1);
power1=sq1.^2;
subplot(212);
plot(f,power1);
title('方波信号功率谱');grid;
对两个信号进行恢复程序:
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
figure(4);
subplot(211);
plot(ti,magx);
axis([0,0.1,-1,1]);
title('通过IFFT转换的正弦信号波形');
zifft=ifft(y1);
magz=real(zifft);
ti1=[0:length(zifft)-1]/fs;
subplot(212);
plot(ti1,magz);
title('通过IFFT转换的方波信号波形');grid;
当采样频率小于2fc或N小于M时恢复信号就会出现失真,频谱会发生馄叠。
六、设计总结:
通过对本次应用MATLAB语言对信号进行频谱分析及滤波设计,使更加系统的理解了FFT,IFFT功能,对采样频谱分析及恢复功能掌握有了进一步提高,如果序列x(n)主值序列长度为M,最高频率为fc只有当频率采样点N≥M,采样频率fs≥2fc时,才有x(n)=IDFT[X(k)]=x(n)可有频域采样X(k)恢复原序列x(n),否则产生时域混叠失真现象。
本次设计对我的启发很大也更见锻炼了我们面对困难的心态,对今后的学习工作大有裨益。
七、参考文献:
1 丁玉美,高西全.数字信号处理.2版.西安:西安电子科技大学出版社,2001
2 [美] M.H.海因斯著张建华等译.数字信号处理.北京:科学出版社,2002
3 张葛祥,李娜. MATLAB仿真技术与应用.北京:清华大学出版社,2003
4 楼顺天,李博菡.基于MATLAB的系统分析与设计.西安:西安电子科技大学出版社,1998
5.王宏..MA TLAB
6.5及其在信号处理中的应用.北京清华大学出版社,2004。