信号处理仿真与应用课程实验报告实验一
数字信号处理MATLAB实验1

实验一熟悉MATLAB环境一、实验目的(1)熟悉MATLAB的主要操作命令。
(2)学会简单的矩阵输入和数据读写。
(3)掌握简单的绘图命令。
(4)用MATLAB编程并学会创建函数。
(5)观察离散系统的频率响应。
二、实验内容认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。
在熟悉了MATLAB基本命令的基础上,完成以下实验。
上机实验内容:(1)数组的加、减、乘、除和乘方运算。
输入A=[1234],B=[3456],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。
(2)用MATLAB实现以下序列。
a)x(n)=0.8n0≤n≤15b)x(n)=e(0.2+3j)n0≤n≤15c)x(n)=3cos(0.125πn+0.2π)+2sin(0.25πn+0.1π)0≤n≤15(n)=x(n+16),绘出四个d)将c)中的x(n)扩展为以16为周期的函数x16周期。
(n)=x(n+10),绘出四个e)将c)中的x(n)扩展为以10为周期的函数x10周期。
(3)x(n)=[1,-1,3,5],产生并绘出下列序列的样本。
a)x 1(n)=2x(n+2)-x(n-1)-2x(n)b)∑=-=51k 2)k n (nx (n) x (4)绘出下列时间函数的图形,对x轴、y轴以及图形上方均须加上适当的标注。
a)x(t)=sin(2πt)0≤t≤10sb)x(t)=cos(100πt)sin(πt)0≤t≤4s(5)编写函数stepshift(n0,n1,n2)实现u(n-n0),n1<n0<n2,绘出该函数的图形,起点为n1,终点为n2。
(6)给定一因果系统)0.9z 0.67z -1)/(1z 2(1H(z)-2-1-1+++=求出并绘制H(z)的幅频响应与相频响应。
(7)计算序列{8-2-123}和序列{23-1-3}的离散卷积,并作图表示卷积结果。
数字信号处理实验报告

实验一 信号、系统及系统响应一、实验目的1、熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对时域采样定理的理解。
2、熟悉离散信号和系统的时域特性。
3、熟悉线性卷积的计算编程方法:利用卷积的方法,观察、分析系统响应的时域特性。
4、掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号、系统及其系统响应进行频域分析。
二、 实验原理1.理想采样序列:对信号x a (t)=A e −αt sin(Ω0t )u(t)进行理想采样,可以得到一个理想的采样信号序列x a (t)=A e −αt sin(Ω0nT ),0≤n ≤50,其中A 为幅度因子,α是衰减因子,Ω0是频率,T 是采样周期。
2.对一个连续时间信号x a (t)进行理想采样可以表示为该信号与一个周期冲激脉冲的乘积,即x ̂a (t)= x a (t)M(t),其中x ̂a (t)是连续信号x a (t)的理想采样;M(t)是周期冲激M(t)=∑δ+∞−∞(t-nT)=1T ∑e jm Ωs t +∞−∞,其中T 为采样周期,Ωs =2π/T 是采样角频率。
信号理想采样的傅里叶变换为X ̂a (j Ω)=1T ∑X a +∞−∞[j(Ω−k Ωs )],由此式可知:信号理想采样后的频谱是原信号频谱的周期延拓,其延拓周期为Ωs =2π/T 。
根据时域采样定理,如果原信号是带限信号,且采样频率高于原信号最高频率分量的2倍,则采样以后不会发生频率混叠现象。
三、简明步骤产生理想采样信号序列x a (n),使A=444.128,α=50√2π,Ω0=50√2π。
(1) 首先选用采样频率为1000HZ ,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并做记录;(2) 改变采样频率为300HZ ,T=1/300,观察所得到的频谱特性曲线的变化,并做记录;(3) 进一步减小采样频率为200HZ ,T=1/200,观察频谱混淆现象是否明显存在,说明原因,并记录这时候的幅频特性曲线。
数字信号处理实验报告

《数字信号处理》实验报告学院:信息科学与工程学院专业班级:通信1303姓名学号:实验一 常见离散时间信号的产生和频谱分析一、 实验目的(1) 熟悉MATLAB 应用环境,常用窗口的功能和使用方法;(2) 加深对常用离散时间信号的理解;(3) 掌握简单的绘图命令;(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对离散信号进行频域分析。
二、 实验原理(1) 常用离散时间信号a )单位抽样序列⎩⎨⎧=01)(n δ00≠=n n 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n b )单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n c )矩形序列 ⎩⎨⎧=01)(n R N 其他10-≤≤N nd )正弦序列)sin()(ϕ+=wn A n xe )实指数序列f )复指数序列()()jw n x n e σ+=(2)离散傅里叶变换:设连续正弦信号()x t 为0()sin()x t A t φ=Ω+这一信号的频率为0f ,角频率为002f πΩ=,信号的周期为00012T f π==Ω。
如果对此连续周期信号()x t 进行抽样,其抽样时间间隔为T ,抽样后信号以()x n 表示,则有0()()sin()t nT x n x t A nT φ===Ω+,如果令w 为数字频率,满足000012s sf w T f f π=Ω=Ω=,其中s f 是抽样重复频率,简称抽样频率。
为了在数字计算机上观察分析各种序列的频域特性,通常对)(jw e X 在[]π2,0上进行M 点采样来观察分析。
对长度为N 的有限长序列x(n), 有∑-=-=10)()(N n n jw jw k k e n x e X其中 1,,1,02-==M k k Mw k ,π 通常M 应取得大一些,以便观察谱的细节变化。
取模|)(|k jw e X 可绘出幅频特性曲线。
信号分析与处理实验报告

《信号分析与处理》实验报告华北电力大学前言1.实验总体目标通过实验,巩固掌握课程的讲授内容,使学生对信号分析与线性系统分析的基本理论及分析方法有一个感性认识和更好地理解,使学生在分析问题与解决问题的能力及实践技能方面有所提高。
2.适用专业自动化专业本科生3.先修课程信号分析与处理4.实验课时分配5需要配置微机及MATLAB工具软件。
6.实验总体要求1、掌握信号分解的基本思想及信号在时域、频域和变换域进行分解的基本理论及描述方法,用MATLAB编程语言实现基本信号的表示及可视化,计算和分析信号的频谱;2、掌握在时域、频域和变换域分析LTI系统的方法,及系统在时域、频域和变换域的描述方法,用MATLAB编程语言实现LTI系统的时域分析及频率分析。
3、掌握信号的调制与解调,用MATLAB编程语言仿真分析信号的调制与解调。
⒎ 本实验的重点、难点及教学方法建议实验通过MATLAB编程语言来实现基本信号的表示及可视化,计算分析信号的频谱,实现LTI系统的时域分析及频率分析,并仿真分析信号的调制与解调,使学生对信号分析与线性系统分析的基本理论及分析方法有一个感性认识和更好地理解。
实验的重点及难点是:掌握基本信号的数学表示,信号的频谱特点,计算LTI系统的典型响应,掌握信号的调制与解调。
在这样的理论基础上,学会用MATLAB编程语言来实现对信号与系统响应的可视化及对数字滤波器进行设计。
教学建议:打好理论基础,熟练编程语言。
目录实验一信号的时域与频域分析 3实验二信号的时域与频域处理 4实验三数字滤波器的设计 5实验一一、实验目的1、熟悉MATLAB 平台,高效的数值计算及符号计算功能;2、实现基本信号的表示及可视化计算;3、分析信号的频谱。
二、 实验类型验证型 三、 实验仪器微机,MATLAB 工具软件。
四、 实验原理MATLAB 是功能强大的数学软件,它提供了计算周期连续函数和周期离散序列的频谱的一系列函数。
信号分析与处理实验报告

华北电力大学实验报告||实验名称FFT的软件实现实验(Matlab)IIR数字滤波器的设计课程名称信号分析与处理||专业班级:电气化1308 学生姓名:袁拉麻加学号: 2 成绩:指导教师:杨光实验日期: 2015-12-17快速傅里叶变换实验一、实验目的及要求通过编写程序,深入理解快速傅里叶变换算法(FFT)的含义,完成FFT和IFFT算法的软件实现。
二、实验内容利用时间抽取算法,编写基2点的快速傅立叶变换(FFT)程序;并在FFT程序基础上编写快速傅里叶反变换(IFFT)的程序。
三:实验要求1、FFT和IFFT子程序相对独立、具有一般性,并加详细注释;2、验证例6-4,并能得到正确结果。
3、理解应用离散傅里叶变换(DFT)分析连续时间信号频谱的数学物理基础。
四、实验原理:a.算法原理1、程序输入序列的元素数目必须为2的整数次幂,即N=2M,整个运算需要M 级蝶形运算;2、输入序列应该按二进制的码位倒置排列,输出序列按自然序列排列;3、每个蝶形运算的输出数据军官占用其他输入数据的存储单元,实现“即位运算”;4、每一级包括N/2个基本蝶形运算,共有M*N/2个基本蝶形运算;5、第L级中有N/2L个群,群与群的间隔为2L。
6、处于同一级的各个群的系数W分布相同,第L级的群中有2L-1个系数;7、处于第L级的群的系数是(p=1,2,3,…….,2L-1)而对于第L级的蝶形运算,两个输入数据的间隔为2L-1。
b.码位倒置程序流程图开始检测A序列长度nk=0j=1x1(j)=bitget(k,j);j=j+1Yj<m?Nx1=num2str(x1);y(k+1)=bin2dec(x1);clear x1k=k+1c.蝶形运算程序流程图五、程序代码与实验结果a.FFT程序:%%clear all;close all;clc;%输入数据%A=input('输入x(n)序列','s');A=str2num(A);% A=[1,2,-1,4]; %测试数据%%%%校验序列,%n=length(A);m=log2(n);if (fix(m)~=m)disp('输入序列长度错误,请重新输入!');A=input('输入x(n)序列','s');A=str2num(A);elsedisp('输入正确,请运行下一步')end%%%码位倒置%for k=0:n-1for j=1:m %取M位的二进制数%x1(j)=bitget(k,j); %倒取出二进制数%endx1=num2str(x1); %将数字序列转化为字符串%y(k+1)=bin2dec(x1); %二进制序列转化为十进制数%clear x1endfor k=1:nB(k)=A(y(k)+1); %时间抽取序列%endclear A%%%计算%for L=1:m %分解为M级进行运算%LE=2^L; %第L级群间隔为2^L%LE1=2^(L-1); %第L级中共有2^(L-1)个Wn乘数,进行运算蝶运算的两数序号相隔LE1%W=1;W1=exp(-1i*pi/LE1);for R=1:LE1 %针对第R个Wn系数进行一轮蝶运算,共进行LE1次%for P=R:LE:n %每个蝶的大小为LE% Q=P+LE1;T=B(Q)*W;B(Q)=B(P)-T;B(P)=B(P)+T;endW=W*W1;endendB %输出X(k)%%%验证结果:例6-4b.IFFT程序:%%clear all;close all;clc;%输入数据%A=input('输入X(k)序列','s');A=str2num(A);% A=[6,2+2i,-6,2-2i]; %测试数据%%%%校验序列,%n=length(A);m=log2(n);if (fix(m)~=m)disp('输入序列长度错误,请重新输入!');A=input('输入x(n)序列','s');A=str2num(A);elsedisp('输入正确,请运行下一步')end%%%码位倒置%for k=0:n-1for j=1:m %取M位的二进制数%x1(j)=bitget(k,j); %倒取出二进制数%endx1=num2str(x1); %将数字序列转化为字符串%y(k+1)=bin2dec(x1); %二进制序列转化为十进制数%clear x1endfor k=1:nB(k)=A(y(k)+1); %时间抽取序列%endclear A%%%计算%for L=1:m %分解为M级进行运算%LE=2^L; %第L级群间隔为2^L%LE1=2^(L-1); %第L级中共有2^(L-1)个Wn乘数,进行运算蝶运算的两数序号相隔LE1%W=1;W1=exp(-1i*pi/LE1);for R=1:LE1 %针对第R个Wn系数进行一轮蝶运算,共进行LE1次%for P=R:LE:n %每个蝶的大小为LE%Q=P+LE1;T=B(Q)*W;B(Q)=B(P)-T;B(P)=B(P)+T;endW=W*W1;endendB=conj(B); %取共轭%B=B/n %输出x(n)%验证结果:六、实验心得与结论本次实验借助于Matlab软件,我避开了用C平台进行复杂的复数运算,在一定程度上简化了程序,并添加了简单的检错代码,码位倒置我通过查阅资料,使用了一些函数,涉及到十-二进制转换,数字-文本转换,二-文本转换,相对较复杂,蝶运算我参考了书上了流程图,做些许改动就能直接实现。
《信号与系统》课程实验报告

《信号与系统》课程实验报告《信号与系统》课程实验报告一图1-1 向量表示法仿真图形2.符号运算表示法若一个连续时间信号可用一个符号表达式来表示,则可用ezplot命令来画出该信号的时域波形。
上例可用下面的命令来实现(在命令窗口中输入,每行结束按回车键)。
t=-10:0.5:10;f=sym('sin((pi/4)*t)');ezplot(f,[-16,16]);仿真图形如下:图1-2 符号运算表示法仿真图形三、实验内容利用MATLAB实现信号的时域表示。
三、实验步骤该仿真提供了7种典型连续时间信号。
用鼠标点击图0-3目录界面中的“仿真一”按钮,进入图1-3。
图1-3 “信号的时域表示”仿真界面图1-3所示的是“信号的时域表示”仿真界面。
界面的主体分为两部分:1) 两个轴组成的坐标平面(横轴是时间,纵轴是信号值);2) 界面右侧的控制框。
控制框里主要有波形选择按钮和“返回目录”按钮,点击各波形选择按钮可选择波形,点击“返回目录”按钮可直接回到目录界面。
图1-4 峰值为8V,频率为0.5Hz,相位为180°的正弦信号图1-4所示的是正弦波的参数设置及显示界面。
在这个界面内提供了三个滑动条,改变滑块的位置,滑块上方实时显示滑块位置代表的数值,对应正弦波的三个参数:幅度、频率、相位;坐标平面内实时地显示随参数变化后的波形。
在七种信号中,除抽样函数信号外,对其它六种波形均提供了参数设置。
矩形波信号、指数函数信号、斜坡信号、阶跃信号、锯齿波信号和抽样函数信号的波形分别如图1-5~图1-10所示。
图1-5 峰值为8V,频率为1Hz,占空比为50%的矩形波信号图1-6 衰减指数为2的指数函数信号图1-7 斜率=1的斜坡信号图1-8 幅度为5V,滞后时间为5秒的阶跃信号图1-9 峰值为8V,频率为0.5Hz的锯齿波信号图1-10 抽样函数信号仿真途中,通过对滑动块的控制修改信号的幅度、频率、相位,观察波形的变化。
信号分析与处理实验报告

实验一图像信号频谱分析及滤波一:实验原理FFT不是一种新的变化,而是DFT的快速算法。
快速傅里叶变换能减少运算量的根本原因在于它不断地把长序列的离散傅里叶变换变为短序列的离散傅里叶变换,在利用的对称性和周期性使DFT运算中的有些项加以合并,达到减少运算工作量的效果。
为了消除或减弱噪声,提取有用信号,必须进行滤波,能实现滤波功能的系统成为滤波器。
按信号可分为模拟滤波器和数字滤波器两大类。
数字滤波器的关键是如何根据给定的技术指标来得到可以实现的系统函数。
从模拟到数字的转换方法很多,常用的有双线性变换法和冲击响应不变法,本实验主要采用双线性变换法。
双线性变换法是一种由s平面到z平面的映射过程,其变换式定义为:数字域频率与模拟频率之间的关系是非线性关系。
双线性变换的频率标度的非线性失真是可以通过预畸变的方法去补偿的。
变换公式有Ωp=2/T*tan(wp/2)Ωs=2/T*tan(ws/2)二:实验内容1.图像信号的采集和显示选择一副不同彩色图片,利用Windows下的画图工具,设置成200*200像素格式。
然后在Matlab软件平台下,利用相关函数读取数据和显示图像。
要求显示出原始灰度图像、加入噪声信号后的灰度图像、滤波后的灰度图像。
2.图像信号的频谱分析要求分析和画出原始灰度图像、加入噪声信号后灰度图像、滤波后灰度图像信号的频谱特性。
3.数字滤波器设计给出数字低通滤波器性能指标:通带截止频率fp=10000 Hz,阻带截止频率fs=15000 Hz,阻带最小衰减Rs=50 dB,通带最大衰减Rp=3 dB,采样频率40000Hz。
三:实验程序clear allx=imread('D:\lan.jpg');%原始彩色图像的数据读取x1=rgb2gray(x);%彩色图像值转化为灰度图像值[M,N]=size(x1);%数据x1的长度,用来求矩阵的大小x2=im2double(x1);%unit8转化为double型x3=numel(x2);%计算x2长度figure(1);subplot(1,3,1);imshow(x2);title('原始灰度图')z1=reshape(x2,1,x3);%将二维数据转化成一维数据g=fft(z1);%对图像进行二维傅里叶变换mag=fftshift(abs(g));%fftshift是针对频域的,将FFT的DC分量移到频谱中心K=40000;Fs=40000;dt=1/Fs;n=0:K-1;f1=18000;z=0.1*sin(2*pi*f1*n*dt);x4=z1+z;%加入正弦噪声f=n*Fs/K;y=fft(x4,K);z2=reshape(x4,M,N);%将一维图转换为二维图subplot(1,3,2);imshow(z2);title('加入噪声后')g1=fft(x4);mag1=fftshift(abs(g1));%设计滤波器ws=0.75*pi;wp=0.5*pi;fs=10000;wp1=2*fs*tan(wp/2);ws1=2*fs*tan(ws/2);rs=50;rp=3;% [n,wn]=buttord(wp/pi,ws/pi,rp,rs);% [bz,az]=butter(n,wn);[n,wn]=buttord(wp1,ws1,rp,rs,'s');[z,p,k]=buttap(n);[b,a]=zp2tf(z,p,k);[B,A]=lp2lp(b,a,wn);[bz,az]=bilinear(B,A,fs);[h,w]=freqz(bz,az,128,fs);L=numel(z2);z3=reshape(z2,1,L);x6=filter(bz,az,double(z3));x7=reshape(x6,M,N);subplot(1,3,3);imshow(x7);g2=fft(x6);mag2=fftshift(abs(g2));title('滤波后')%建立频谱图figure(2);subplot(1,3,1);plot(mag);title('原始Magnitude')subplot(1,3,2);plot(mag1);title('加噪声Magnitude')subplot(1,3,3);plot(mag2);title('滤波后Magnitude')figure(3);subplot(1,2,1)plot(w,abs(h));xlabel('f');ylabel('h');title('滤波器幅谱');subplot(1,2,2);plot(w,angle(h));title('滤波器相谱');四:实验结果与分析图一图二分析:由图二可以知道加入噪声后的幅值谱和原始图的幅值谱明显多了两条幅值线,而这两条幅值线就是我们对原始灰度图加入的正弦噪声,而相应的图一中的加噪声后的图与原始图相比,出现了明显的变化。
数字信号处理实验报告_完整版

实验1 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。
2.应用DFT 分析信号的频谱。
3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。
二、实验设备与环境 计算机、MATLAB 软件环境 三、实验基础理论1.DFT 与DTFT 的关系有限长序列 的离散时间傅里叶变换 在频率区间 的N 个等间隔分布的点 上的N 个取样值可以由下式表示:212/0()|()()01N jkn j Nk N k X e x n eX k k N πωωπ--====≤≤-∑由上式可知,序列 的N 点DFT ,实际上就是 序列的DTFT 在N 个等间隔频率点 上样本 。
2.利用DFT 求DTFT方法1:由恢复出的方法如下:由图2.1所示流程可知:101()()()N j j nkn j nN n n k X e x n eX k W e N ωωω∞∞----=-∞=-∞=⎡⎤==⎢⎥⎣⎦∑∑∑ 由上式可以得到:IDFTDTFT( )12()()()Nj k kX e X k Nωπφω==-∑ 其中为内插函数12sin(/2)()sin(/2)N j N x eN ωωφω--= 方法2:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。
由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为2π/N ,所以如果我们增加数据的长度N ,使得到的DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。
如果没有更多的数据,可以通过补零来增加数据长度。
3.利用DFT 分析连续信号的频谱采用计算机分析连续时间信号的频谱,第一步就是把连续信号离散化,这里需要进行两个操作:一是采样,二是截断。
对于连续时间非周期信号,按采样间隔T 进行采样,阶段长度M ,那么:1()()()M j tj nT a a a n X j x t edt T x nT e ∞--Ω-Ω=-∞Ω==∑⎰对进行N 点频域采样,得到2120()|()()M jkn Na a M kn NTX j T x nT eTX k ππ--Ω==Ω==∑因此,可以将利用DFT 分析连续非周期信号频谱的步骤归纳如下: (1)确定时域采样间隔T ,得到离散序列(2)确定截取长度M ,得到M 点离散序列,这里为窗函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
plot(t,y(1:9,:));grid;
title([num2str(N) '次谐波叠加']);
ylabel('f(wt)/V');
xlabel('t/s');
4实验结果
5实验结果分析
通过实验方波可以用其有限次谐波的合成来近似表示,当合成的谐波次数越多时,近似程度越高。
2实验流程
1.确定方波的频率编写M语言产生方波2.编写产生谐波3.对谐波进行叠加 4.谐波频谱叠加比较
3源程序代码
clc;
close all;
clear all;
fc=10;
Tc=1/fc
w=2*pi*fc;
fs=30*fc;
Ts=1/fs;
figure(1)
ts=1/fs;
tdisplay=3*Tc
title('七次谐波')
xlabel('周期/s')
ylabel('幅度/v')
subplot 325
y6=4/pi*(sin(9*w*t)/9);
plot(t,y6);grid
title('九次谐波')
xlabel('周期/s')
ylabel('幅度/v')
subplot 326
y7=4/pi*(sin(11*w*t)/11);
plot(t,y8);grid
title('前五次谐波叠加')
xlabel('周期/s')
ylabel('幅度/v')
subplot 224
y10=4/pi*(sin(w*t)+sin(3*w*t)/3+sin(5*w*t)/5+sin(7*w*t)/7+sin(9*w*t)/9+sin(11*w*t)/11);
%figure(5)
%FdB=20*log10(abs(F))/max(abs(F))
%plot((-Nfft/2:(Nfft/2)-1)*fs/Nfft,abs(fftshift(FdB)),'r');grid
%ylabel('f(jw)/dB');
%xlabel('f/Hz');\
%%%%%%%%%%%%%%%%%%%%%%%%%
N=10;
f=3;
fs=30*f;
w=2*pi*f;
Nfft=1024;
fwt=0;
t=0:1/fs:1;
y=zeros(10,max(size(t)));
for i=1:N
fwt = fwt+4/pi/(2*i-1)*sin((2*i-1)*w*t);
y(i,:)=fwt;
if i<=4
figure(1)
end
figure(4)
plot(t,y(1:9,:));grid
title([num2str(NM) '次谐波波形叠加'])
xlabel('周期/s')
ylabel('幅度/v')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Nfft = 1024
%F=fft(y3,Nfft)
二、实验目的
1、熟悉MA TLAB命令和编辑、运行、调试环境;
2、编写M文件,信号仿真。
三、涉及实验的相关情况介绍(包含使用软件或实验设备等情况)
计算机一台(安装MATLAB6.5版本或以上版本)。
四、实验记录(含程序、数据记录及分析)
1.原理基础:
按照傅里叶级数原理,任何周期信号在满足狄利克雷条件时都可以展开成如式2-4-1所示的无穷级数
plot(t,y7);grid
title('十一次谐波')
xlabel('周期/s')
ylabel('幅度/v')
figure(3)
subplot 221
y7=4/pi*(sin(w*t)+sin(3*w*t)/3);
plot(t,y7);grid
title('前两次谐波叠加')
xlabel('周期/s')
(2-4-1)
其中 称为周期信号的 谐波分量, 次谐波的频率为周期信号频率的 倍,每一次的谐波的幅度随谐波次数的增加依次递减。当 时的谐波分量为 (直流分量)。当 时的谐波分量为 (一次谐波或基波分量直流分量)。
按照傅里叶级数的基本原理可知,周期信号的无穷级数展开中,各次谐波的频率按照基波信号的频率的整数倍依次递增,幅度值确随做谐波次数的增加依次递减,趋近于零。因此,从信号能量分布的角度来讲,周期信号的能量主要分布在频率较低的有限次谐波分量上。此原理在通信技术当中得到广泛应用,是通信技术的理论基础。
subplot(2,2,i);
plot(t,fwt);grid;
title(['前' num2str(i) '次谐波叠加']);
ylabel('f(wt)/V');
xlabel('t/s');
figure(2)
subplot(2,2,i);
fjw=fft(fwt, Nfft);
fjw2=fftshift(fjw);
plot(t,y9);grid
title('前六次谐波叠加')
xlabel('周期/s')
ylabel('幅度/v')
Nk=i
y=zeros(10,max(size(t)));x=zeros(size(t));
NM=50
for k=1:2:NM
x=x+4/pi*(sin(k*w*t)/k)
y((k+1)/2,:)=x;
信号处理仿真与应用课程实验报告
实验名称
周期方波信号的级
数分解
系别
电子信息工程(信号处理)
教师姓名
王丽娟
实验地点
5306
实验日期
2014.05.08
一、实验内容
根据信号理论,周期方波信号可用无限多的谐波信号线性叠加表示。当谐波数量有限时,其逼近存在误差。本实验要求学生编写 M 文件,仿真观测对于不同数量的谐波,其线性叠加与周期方波信号的误差。
ylabel('幅度/v')
subplot 323
y4=4/pi*(sin(5*w*t)/5);
plot(t,y4);grid
title('五次谐波')
xlabel('周期/s')
ylabel('幅度/v')
subplot 324
y5=4/pi*(sin(7*w*t)/7);
plot(t,y5);grid
y2=4/pi*sin(w*t);
plot(t,y2);grid on
title('正弦基波')
xlabel('周期/s')
ylabel('幅度/v')
subplot 322
y3=4/pi*(sin(3*w*t)/3);
plot(t,y3);grid
title('三次谐波')
xlabel('周期/s')
t=0:Ts:tdisplay;
f=1/ts;
N=length(t);
y1=square(w*t);
plot(t,y1);grid on
title('产生一个方波');
axis([0,tdisplay,0,1.5]);
xlabel('周期/s')
ylabel('幅度/v')
figure(2)
subplot 321
周期信号可以用其有限次谐波的合成来近似表示,当合成的谐波次数越多时,近似程度越高,可以用方均误差来定义这种近似程度,设傅里叶级数前有限项(N项)和为
(2-4-2)
用 近似表示 所引起的误差函数为 (2-4-3)
方均误差可以定义为 (2-4-4)
通常,随着合成的谐波次数的增加,方均误差逐渐减小,可见合成波形与原波形之间的偏差越来越小。
hjw=abs(fjw2);
fres=fs/Nfft;
plot((-Nfft/2:Nfft/2-1)*fres,20*log10(hjw/max(hjw)));grid;
axis([-20 20 -30 0]);
title(['前' num2str(i) '次谐波叠加的频谱']);
ylabel('f(jw)/dB');
ylabel('幅度/v')
subplot 222
y8=4/pi*(sin(w*t)+sin(3*w*t)/3+sin(5*w*t)/5);
plot(t,y8);grid
title('前三次谐波叠加')
xlabel('周期/s')
ylabel('幅度/v')
subplot 223
y9=4/pi*(sin(w*t)+sin(3*w*t)/3+sin(5*w*t)/5+sin(7*w*t)/7+sin(9*w*t)/9);
五、实验总结
经过此次实验我对MATLAB的使用有了基本的认识,对波形的产生会使用M语言来编写。