应用 MATLAB实现连续信号的采样与重构仿真

合集下载

基于MATLAB的信号采样与重构的实现

基于MATLAB的信号采样与重构的实现

中, 若无特别说明,则 表示矩阵相乘。
按周期 对信号f t进行采样 ,则采样后 的 ()
信号为一组离散信号 () t
1 信号采样与频谱分析
对于时限连续信号 t ,其频谱为频限的连续 ) 信号 ,其频域函数为
f t = ∑fn ̄ (— T ; s) ( (T 8t ns ) )
中图分类号 : 9 1. N 16 6 文献标识码 :A 文章编号 : 0 24 5 (0 7 0 — 0 9 0 10 -9 6 2 0 )2 07 — 2 .
Re l ain o in ls mp ig a d rc n tu t n b s d o ai t fsg a a l n e o sr ci a e n MAT AB z o n o L
t e e l frc n t c ig sg a .a d a ay e h n u n e o mp e p r d o u ep st n o e f q e c p c h n0 o o s u t i 1 n n z d t eif e c f a l e i n s p r o i o f r u n y s e — r e r n n l l s o i h t e tu a d p e iin o a l g sg a e o sr ci n r m n r cso fs mp i i n r c n t t . n l u o Ke r s i n l a l g MA L y wo d :sg a mp i ; s n T AB;s mp ig p ro rq e c ; s e t m; sg a e o sr c in a l ei d fe u n y p c r n u in rc n t t l u o
若 盯 取得 足够 大 ,使 (r O n) ,则 n为有 限 值 ,取 最大 值为 N,则

离散信号的采样与重建matlab编程

离散信号的采样与重建matlab编程

离散信号的采样与重建是数字信号处理中的重要概念,它涉及到信号的采样、离散化、量化和还原等过程。

在数字信号处理中,离散信号的采样与重建是一个核心问题,它直接影响着信号的质量和信息的准确性。

在本文中,我们将使用Matlab编程来探讨离散信号的采样与重建,通过实例演示这一过程的具体步骤和原理。

在Matlab中,我们可以使用一些内置函数和工具来完成离散信号的采样与重建,这些工具能够帮助我们更好地理解信号处理的基本原理和方法。

1. 离散信号的采样在数字信号处理中,信号的采样是指将连续信号转换成离散信号的过程。

采样过程中,我们需要确定采样频率和采样间隔,以及信号的起始和结束时间。

在Matlab中,可以使用`sample`函数来实现信号的离散采样。

我们可以定义一个正弦波信号,并对其进行离散采样:```matlabt = 0:0.01:1; 定义时间序列f = 5; 正弦波频率x = sin(2*pi*f*t); 生成正弦波信号fs = 100; 采样频率n = length(t); 采样点数ts = 1/fs; 采样间隔x_sampled = x(1:fs:end); 对信号进行离散采样```在上面的示例中,我们定义了正弦波信号的时间序列`t`,计算了采样频率和采样间隔,然后使用`sample`函数对信号进行了离散采样,得到了采样后的离散信号`x_sampled`。

2. 离散信号的重建离散信号的重建是指将离散采样得到的信号重新转换成连续信号的过程。

在Matlab中,可以使用`interp1`函数来实现信号的重建。

我们可以对上面采样得到的离散信号进行线性插值重建:```matlabt_reconstructed = 0:ts:1;x_reconstructed = interp1(0:ts:1, x_sampled, t_reconstructed, 'linear');```在上面的示例中,我们定义了重建后的时间序列`t_reconstructed`,然后使用`interp1`函数对离散信号进行线性插值重建,得到了重建后的连续信号`x_reconstructed`。

实验一连续时间信号的Matlab表示与计算

实验一连续时间信号的Matlab表示与计算

实验⼀连续时间信号的Matlab表⽰与计算实验⼀连续时间信号的Matlab表⽰与计算⼀、实验⽬的1、初步学习MATLAB语⾔,熟悉MATLAB软件的基本使⽤。

2、掌握⽤MA TLAB描述连续时间信号⽅法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的⽅式再现各种信号的波形。

⼆、实验原理连续信号是指⾃变量的取值范围是连续的,且对于⼀切⾃变量的取值,除了有若⼲个不连续点之外,信号都有确定的值与之对应。

严格来说,MATLAB并不能处理连续信号,⽽是⽤等时间间隔点的样值来近似表⽰连续信号。

当取样时间间隔⾜够⼩时,这些离散的样值就能较好地近似连续信号。

在MATLAB可视化绘图中,对于以t为⾃变量的连续信号,在绘图时统⼀⽤plot函数;⽽对n为⾃变量的离散序列,在绘图时统⼀⽤stem函数。

对于连续时间信号f(t),可⽤f、t两个⾏向量来表⽰。

例:t=-10:1.5:10;f=sin(t)./ t ;可以产⽣t= -10~10,间隔1.5的序列以及t tf)sin(的值。

⽤命令:plot(t,f)可得如下图形,显然显⽰效果较差,这是因为t的间隔过⼤,只要改变为:t=-10:0.5:10;可得图1.2。

图1.1 图1.21. 信号的时域表⽰⽅法MATLAB提供了⼤量⽤以⽣成基本信号的函数,⽐如最常⽤的指数信号、正弦信号等就是MATLAB的内部函数,即不需要安装任何⼯具箱就可以调⽤的函数。

1.1单位阶跃信号u(t)function f=ut(t) %阶跃信号f=(t>0); % y = 1 for t > 0, else y = 01.2单位冲激信号δ(t)function chongji(t1,t2,t0) %冲激信号δ(t- t 0),t 1和t 2分为起始时间和终⽌时间 dt=0.01; t=t1:dt:t2; n=length(t); x=zeros(1,n); x(1,(t0-t1)/dt+1)=1/dt;stairs(t,x); %以阶梯⽅式绘画 axis([t1,t2,0,1.1/dt])或function y = delta(t) dt = 0.01;y = (ut(t)-ut(t-dt))/dt;1.3指数信号指数信号atAe 在MATLAB 中可以⽤exp 函数表⽰,其调⽤形式为: y=A*exp(a*t)例如图1-3所⽰指数衰减信号的MATLAB 源程序如下(取A=1,a=-0.4): %program7_1 Decaying expponential signalA=1;a=-0.4; t=0:0.01:10; ft=A*exp(a*t);plot(t,ft);grid on; 1.4正弦信号正弦信号)cos(?ω+t A o 和)sin(?ω+t A o 分别⽤MATLAB 的内部函数cos 和sin 表⽰,其调⽤形式为:)*cos(*phi t A o +ω )*sin(*phi t A o +ω例如图1-4所⽰MATLAB 源程序如下(取A=1,πω20=,6/π?=): %program7_2 Sinusoidal signal A=1;w0=2*pi;phi=pi/6; t=0:0.01:8;ft=A*sin(w0*t+phi); plot(t,ft);grid on;图1-3 单边指数衰减信号图1-4 正弦信号除了内部函数外,在信号处理⼯具箱(Signal Processing Toolbox )中还提供了诸如抽样函数、矩形波、三⾓波、周期性矩形波和周期性三⾓波等在信号处理中常⽤的信号。

信号抽样与恢复

信号抽样与恢复

实验一 信号抽样与恢复一、实验目的学会用MATLAB 实现连续信号的采样和重建 二、实验原理 1.抽样定理若)(t f 是带限信号,带宽为m ω, )(t f 经采样后的频谱)(ωs F 就是将)(t f 的频谱)(ωF 在频率轴上以采样频率s ω为间隔进行周期延拓。

因此,当s ω≥2m ω时,不会发生频率混叠;而当 s ω<2m ω 时将发生频率混叠。

2.信号重建经采样后得到信号)(t f s 经理想低通)(t h 则可得到重建信号)(t f ,即:)(t f =)(t f s *)(t h其中:)(t f s =)(t f ∑∞∞--)(snT t δ=∑∞∞--)()(ssnT t nT f δ)()(t Sa T t h c cs ωπω=所以:)(t f =)(t f s *)(t h =∑∞∞--)()(s s nT t nT f δ*)(t Sa T c csωπω =πωcs T ∑∞∞--)]([)(s csnT t Sa nT f ω上式表明,连续信号可以展开成抽样函数的无穷级数。

利用MATLAB 中的t t t c ππ)sin()(sin =来表示)(t Sa ,有 )(sin )(πt c t Sa =,所以可以得到在MATLAB 中信号由)(s nT f 重建)(t f 的表达式如下:)(t f =πωcs T ∑∞∞--)]([sin )(s cs nT t c nT f πω 我们选取信号)(t f =)(t Sa 作为被采样信号,当采样频率s ω=2m ω时,称为临界采样。

我们取理想低通的截止频率c ω=m ω。

下面程序实现对信号)(t f =)(t Sa 的采样及由该采样信号恢复重建)(t Sa :三、上机实验内容1.验证实验原理中所述的相关程序;2.设f(t)=0.5*(1+cost)*(u(t+pi)-u(t-pi)) ,由于不是严格的频带有限信号,但其频谱大部分集中在[0,2]之间,带宽m ω可根据一定的精度要求做一些近似。

抽样定理及应用

抽样定理及应用

适用标准文案抽样定理及应用一.课程设计的目的1.掌握利用 MATLAB剖析系统频次响应的方法,增添对仿真软件 MATLAB的感性认识,学会该软件的操作和使用方法。

2.掌握利用 MATLAB实现连续信号采纳与重构的方法,加深理解采样与重构的观点。

3 .初步掌握线性系统的设计方法,培育独立工作能力。

4.学习 MATLAB中信号表示的基本方法及画图函数的调用,实现对常用连续时间信号的可视化表示,加深对各样电信号的理解。

5.加深理解采样对信号的时域和频域特征的影响;考证信号与系统的基本观点、基本理论,掌握信号与系统的剖析方法。

6.加深对采样定理的理解和掌握,以及对信号恢复的必需性;掌握对连续信号在时域的采样与重构的方法。

二.课程设计的内容及要求1.课程设计的内容失散正弦序列的 MATLAB表示与连续信号近似,只可是是用 stem 函数而不是用 plot 函数来画出序列波形。

命令窗口没翻开时,从“ Desktop ”菜单中选择“ Command Window”选项能够翻开它。

“>>”符号是输入函数的提示符,在提示符后边输入数据和运转函数。

退出 MATLAB时,工作空间中的内容随之消除。

能够将目前工作中的部分或所有变量保留在一个 MAT文件中,它是一种二进制文件,扩展名为 .mat 。

而后可在此后使用它时载入它。

用MATLAB的目前目录阅读器搜寻、查察、翻开、查找和改变 MATLAB路径和文件。

在 MATLAB桌面上,从“ Desktop ”菜单中选择“ Current Directory ”选项,或许在命令窗口键入“filebrowser ”,翻开目前目录阅读器。

使用目前目录阅读器能够达成下边的主要任务:查察和改变路径;创立、重命名、复制和删除路径和文件;翻开、运转和查察文件的内容;因为函数 Sa(t ) 不是严格的带限信号,其带宽m 可依据必定的精度要求做一近似。

依据以下三种状况用MATLAB实现采样信号及重构并求出二者偏差,剖析三种状况下的结果。

matlab仿真程序

matlab仿真程序

4.搜集整理小波分析的matlab程序4.1小波滤波器构造和消噪程序重构% mallet_wavelet.m% 此函数用于研究Mallet算法及滤波器设计% 此函数仅用于消噪a=pi/8; %角度赋初值b=pi/8;%低通重构FIR滤波器h0(n)冲激响应赋值h0=cos(a)*cos(b);h1=sin(a)*cos(b);h2=-sin(a)*sin(b);h3=cos(a)*sin(b);low_construct=[h0,h1,h2,h3];L_fre=4; %滤波器长度low_decompose=low_construct(end:-1:1); %确定h0(-n),低通分解滤波器for i_high=1:L_fre; %确定h1(n)=(-1)^n,高通重建滤波器if(mod(i_high,2)==0);coefficient=-1;elsecoefficient=1;endhigh_construct(1,i_high)=low_decompose(1,i_high)*coefficient;endhigh_decompose=high_construct(end:-1:1); %高通分解滤波器h1(-n) L_signal=100; %信号长度n=1:L_signal; %信号赋值f=10;t=0.001;y=10*cos(2*pi*50*n*t).*exp(-20*n*t);figure(1);plot(y);title('原信号');check1=sum(high_decompose); %h0(n)性质校验check2=sum(low_decompose);check3=norm(high_decompose);check4=norm(low_decompose);l_fre=conv(y,low_decompose); %卷积l_fre_down=dyaddown(l_fre); %抽取,得低频细节h_fre=conv(y,high_decompose);h_fre_down=dyaddown(h_fre); %信号高频细节figure(2);subplot(2,1,1)plot(l_fre_down);title('小波分解的低频系数');subplot(2,1,2);plot(h_fre_down);title('小波分解的高频系数');l_fre_pull=dyadup(l_fre_down); %0差值h_fre_pull=dyadup(h_fre_down);l_fre_denoise=conv(low_construct,l_fre_pull);h_fre_denoise=conv(high_construct,h_fre_pull);l_fre_keep=wkeep(l_fre_denoise,L_signal); %取结果的中心部分,消除卷积影响h_fre_keep=wkeep(h_fre_denoise,L_signal);sig_denoise=l_fre_keep+h_fre_keep; %信号重构compare=sig_denoise-y; %与原信号比较figure(3);subplot(3,1,1)plot(y);ylabel('y'); %原信号subplot(3,1,2);plot(sig_denoise);ylabel('sig\_denoise'); %重构信号subplot(3,1,3);plot(compare);ylabel('compare'); %原信号与消噪后信号的比较消噪、% 此函数用于研究Mallet算法及滤波器设计% 此函数用于消噪处理%角度赋值%此处赋值使滤波器系数恰为db9%分解的高频系数采用db9较好,即它的消失矩较大%分解的有用信号小波高频系数基本趋于零%对于噪声信号高频分解系数很大,便于阈值消噪处理[l,h]=wfilters('db10','d');low_construct=l;L_fre=20; %滤波器长度low_decompose=low_construct(end:-1:1); %确定h0(-n),低通分解滤波器for i_high=1:L_fre; %确定h1(n)=(-1)^n,高通重建滤波器if(mod(i_high,2)==0);coefficient=-1;elsecoefficient=1;endhigh_construct(1,i_high)=low_decompose(1,i_high)*coefficient;endhigh_decompose=high_construct(end:-1:1); %高通分解滤波器h1(-n)L_signal=100; %信号长度n=1:L_signal; %原始信号赋值f=10;t=0.001;y=10*cos(2*pi*50*n*t).*exp(-30*n*t);zero1=zeros(1,60); %信号加噪声信号产生zero2=zeros(1,30);noise=[zero1,3*(randn(1,10)-0.5),zero2];y_noise=y+noise;figure(1);subplot(2,1,1);plot(y);title('原信号');subplot(2,1,2);plot(y_noise);title('受噪声污染的信号');check1=sum(high_decompose); %h0(n),性质校验check2=sum(low_decompose);check3=norm(high_decompose);check4=norm(low_decompose);l_fre=conv(y_noise,low_decompose); %卷积l_fre_down=dyaddown(l_fre); %抽取,得低频细节h_fre=conv(y_noise,high_decompose);h_fre_down=dyaddown(h_fre); %信号高频细节subplot(2,1,1)plot(l_fre_down);title('小波分解的低频系数');subplot(2,1,2);plot(h_fre_down);title('小波分解的高频系数');% 消噪处理for i_decrease=31:44;if abs(h_fre_down(1,i_decrease))>=0.000001h_fre_down(1,i_decrease)=(10^-7);endendl_fre_pull=dyadup(l_fre_down); %0差值h_fre_pull=dyadup(h_fre_down);l_fre_denoise=conv(low_construct,l_fre_pull);h_fre_denoise=conv(high_construct,h_fre_pull);l_fre_keep=wkeep(l_fre_denoise,L_signal); %取结果的中心部分,消除卷积影响h_fre_keep=wkeep(h_fre_denoise,L_signal);sig_denoise=l_fre_keep+h_fre_keep; %消噪后信号重构%平滑处理for j=1:2sig_denoise(i)=sig_denoise(i-2)+sig_denoise(i+2)/2;end;end;compare=sig_denoise-y; %与原信号比较figure(3);subplot(3,1,1)plot(y);ylabel('y'); %原信号subplot(3,1,2);plot(sig_denoise);ylabel('sig\_denoise'); %消噪后信号subplot(3,1,3);plot(compare);ylabel('compare'); %原信号与消噪后信号的比较4.2小波谱分析mallat算法经典程序clc;clear;%% 1.正弦波定义f1=50; % 频率1f2=100; % 频率2fs=2*(f1+f2); % 采样频率Ts=1/fs; % 采样间隔N=120; % 采样点数n=1:N;y=sin(2*pi*f1*n*Ts)+sin(2*pi*f2*n*Ts); % 正弦波混合figure(1)plot(y);title('两个正弦信号')figure(2)stem(abs(fft(y)));title('两信号频谱')%% 2.小波滤波器谱分析h=wfilters('db30','l'); % 低通g=wfilters('db30','h'); % 高通h=[h,zeros(1,N-length(h))]; % 补零(圆周卷积,且增大分辨率变于观察)g=[g,zeros(1,N-length(g))]; % 补零(圆周卷积,且增大分辨率变于观察)figure(3);stem(abs(fft(h)));title('低通滤波器图')figure(4);stem(abs(fft(g)));title('高通滤波器图')%% 3.MALLET分解算法(圆周卷积的快速傅里叶变换实现)sig1=ifft(fft(y).*fft(h)); % 低通(低频分量)sig2=ifft(fft(y).*fft(g)); % 高通(高频分量)figure(5); % 信号图subplot(2,1,1)plot(real(sig1));title('分解信号1')subplot(2,1,2)plot(real(sig2));title('分解信号2')figure(6); % 频谱图subplot(2,1,1)stem(abs(fft(sig1)));title('分解信号1频谱')subplot(2,1,2)stem(abs(fft(sig2)));title('分解信号2频谱')%% 4.MALLET重构算法sig1=dyaddown(sig1); % 2抽取sig2=dyaddown(sig2); % 2抽取sig1=dyadup(sig1); % 2插值sig2=dyadup(sig2); % 2插值sig1=sig1(1,[1:N]); % 去掉最后一个零sig2=sig2(1,[1:N]); % 去掉最后一个零hr=h(end:-1:1); % 重构低通gr=g(end:-1:1); % 重构高通hr=circshift(hr',1)'; % 位置调整圆周右移一位gr=circshift(gr',1)'; % 位置调整圆周右移一位sig1=ifft(fft(hr).*fft(sig1)); % 低频sig2=ifft(fft(gr).*fft(sig2)); % 高频sig=sig1+sig2; % 源信号%% 5.比较figure(7);subplot(2,1,1)plot(real(sig1));title('重构低频信号');subplot(2,1,2)plot(real(sig2));title('重构高频信号');figure(8);subplot(2,1,1)stem(abs(fft(sig1)));title('重构低频信号频谱');subplot(2,1,2)stem(abs(fft(sig2)));title('重构高频信号频谱');figure(9)plot(real(sig),'r','linewidth',2);hold on;plot(y);legend('重构信号','原始信号')title('重构信号与原始信号比较')小波包变换分析信号的MATLAB程序%t=0.001:0.001:1;t=1:1000;s1=sin(2*pi*50*t*0.001)+sin(2*pi*120*t*0.001)+rand(1,length(t));for t=1:500;s2(t)=sin(2*pi*50*t*0.001)+sin(2*pi*120*t*0.001)+rand(1,length(t)); endfor t=501:1000;s2(t)=sin(2*pi*200*t*0.001)+sin(2*pi*120*t*0.001)+rand(1,length(t)); endsubplot(9,2,1)plot(s1)title('原始信号')ylabel('S1')subplot(9,2,2)plot(s2)title('故障信号')ylabel('S2')wpt=wpdec(s1,3,'db1','shannon');%plot(wpt);s130=wprcoef(wpt,[3,0]);s131=wprcoef(wpt,[3,1]);s132=wprcoef(wpt,[3,2]);s133=wprcoef(wpt,[3,3]);s134=wprcoef(wpt,[3,4]);s135=wprcoef(wpt,[3,5]);s136=wprcoef(wpt,[3,6]);s137=wprcoef(wpt,[3,7]);s10=norm(s130);s11=norm(s131);s12=norm(s132);s13=norm(s133);s14=norm(s134);s15=norm(s135);s16=norm(s136);s17=norm(s137);st10=std(s130);st11=std(s131);st12=std(s132);st13=std(s133);st14=std(s134);st15=std(s135);st16=std(s136);st17=std(s137);disp('正常信号的特征向量');snorm1=[s10,s11,s12,s13,s14,s15,s16,s17] std1=[st10,st11,st12,st13,st14,st15,st16,st17]subplot(9,2,3);plot(s130);ylabel('S130');subplot(9,2,5);plot(s131);ylabel('S131');subplot(9,2,7);plot(s132);ylabel('S132');subplot(9,2,9);plot(s133);ylabel('S133');subplot(9,2,11);plot(s134);ylabel('S134');subplot(9,2,13);plot(s135);ylabel('S135');subplot(9,2,15);plot(s136);ylabel('S136');subplot(9,2,17);plot(s137);ylabel('S137');wpt=wpdec(s2,3,'db1','shannon');%plot(wpt);s230=wprcoef(wpt,[3,0]);s231=wprcoef(wpt,[3,1]);s232=wprcoef(wpt,[3,2]);s233=wprcoef(wpt,[3,3]);s234=wprcoef(wpt,[3,4]);s235=wprcoef(wpt,[3,5]);s236=wprcoef(wpt,[3,6]);s237=wprcoef(wpt,[3,7]);s20=norm(s230);s21=norm(s231);s22=norm(s232);s23=norm(s233);s24=norm(s234);s25=norm(s235);s26=norm(s236);s27=norm(s237);st20=std(s230);st21=std(s231);st22=std(s232);st23=std(s233);st24=std(s234);st25=std(s235);st26=std(s236);st27=std(s237);disp('故障信号的特征向量');snorm2=[s20,s21,s22,s23,s24,s25,s26,s27] std2=[st20,st21,st22,st23,st24,st25,st26,st27]subplot(9,2,4);plot(s230);ylabel('S230');subplot(9,2,6);plot(s231); ylabel('S231');subplot(9,2,8);plot(s232); ylabel('S232');subplot(9,2,10);plot(s233); ylabel('S233');subplot(9,2,12);plot(s234); ylabel('S234');subplot(9,2,14);plot(s235); ylabel('S235');subplot(9,2,16);plot(s236); ylabel('S236');subplot(9,2,18);plot(s237); ylabel('S237');%fftfigurey1=fft(s1,1024);py1=y1.*conj(y1)/1024;y2=fft(s2,1024);py2=y2.*conj(y2)/1024;y130=fft(s130,1024);py130=y130.*conj(y130)/1024; y131=fft(s131,1024);py131=y131.*conj(y131)/1024; y132=fft(s132,1024);py132=y132.*conj(y132)/1024; y133=fft(s133,1024);py133=y133.*conj(y133)/1024; y134=fft(s134,1024);py134=y134.*conj(y134)/1024; y135=fft(s135,1024);py135=y135.*conj(y135)/1024; y136=fft(s136,1024);py136=y136.*conj(y136)/1024; y137=fft(s137,1024);py137=y137.*conj(y137)/1024;y230=fft(s230,1024);py230=y230.*conj(y230)/1024; y231=fft(s231,1024);py231=y231.*conj(y231)/1024; y232=fft(s232,1024);py232=y232.*conj(y232)/1024; y233=fft(s233,1024);py233=y233.*conj(y233)/1024; y234=fft(s234,1024);py234=y234.*conj(y234)/1024; y235=fft(s235,1024);py235=y235.*conj(y235)/1024; y236=fft(s236,1024);py236=y236.*conj(y236)/1024; y237=fft(s237,1024);py237=y237.*conj(y237)/1024;f=1000*(0:511)/1024; subplot(1,2,1);plot(f,py1(1:512));ylabel('P1');title('原始信号的功率谱') subplot(1,2,2);plot(f,py2(1:512));ylabel('P2');title('故障信号的功率谱') figuresubplot(4,2,1);plot(f,py130(1:512));ylabel('P130');title('S130的功率谱') subplot(4,2,2);plot(f,py131(1:512));ylabel('P131');title('S131的功率谱') subplot(4,2,3);plot(f,py132(1:512));ylabel('P132');subplot(4,2,4);plot(f,py133(1:512));ylabel('P133');subplot(4,2,5);plot(f,py134(1:512));ylabel('P134');subplot(4,2,6);plot(f,py135(1:512));ylabel('P135');subplot(4,2,7);plot(f,py136(1:512));ylabel('P136');subplot(4,2,8);plot(f,py137(1:512));ylabel('P137');figuresubplot(4,2,1);plot(f,py230(1:512));ylabel('P230');title('S230的功率谱')subplot(4,2,2);plot(f,py231(1:512));ylabel('P231');title('S231的功率谱')subplot(4,2,3);plot(f,py232(1:512));ylabel('P232');subplot(4,2,4);plot(f,py233(1:512));ylabel('P233');subplot(4,2,5);plot(f,py234(1:512));ylabel('P234');subplot(4,2,6);plot(f,py235(1:512));ylabel('P235');subplot(4,2,7);plot(f,py236(1:512));ylabel('P236');subplot(4,2,8);plot(f,py237(1:512));ylabel('P237');figure%plottree(wpt)4.3利用小波变换实现对电能质量检测的算法实现N=10000;s=zeros(1,N);for n=1:Nif n<0.4*N||n>0.8*Ns(n)=31.1*sin(2*pi*50/10000*n);elses(n)=22.5*sin(2*pi*50/10000*n);endendl=length(s);[c,l]=wavedec(s,6,'db5'); %用db5小波分解信号到第六层subplot(8,1,1);plot(s);title('用db5小波分解六层:s=a6+d6+d5+d4+d3+d2+d1'); Ylabel('s');%对分解结构【c,l】中第六层低频部分进行重构a6=wrcoef('a',c,l,'db5',6);subplot(8,1,2);plot(a6);Ylabel('a6');%对分解结构【c,l】中各层高频部分进行重构for i=1:6decmp=wrcoef('d',c,l,'db5',7-i);subplot(8,1,i+2);plot(decmp);Ylabel(['d',num2str(7-i)]);end%-----------------------------------------------------------rec=zeros(1,300);rect=zeros(1,300);ke=1;u=0;d1=wrcoef('d',c,l,'db5',1);figure(2);plot(d1);si=0;N1=0;N0=0;sce=0;for n=20:N-30rect(ke)=s(n);ke=ke+1;if(ke>=301)if(si==2)rec=rect;u=2;end;si=0;ke=1;end;if(d1(n)>0.01) % the condition of abnormal append.N1=n;if(N0==0)N0=n;si=si+1;end;if(N1>N0+30)Nlen=N1-N0;Tab=Nlen/10000;end;end;if(si==1)for k=N0:N0+99 %testing of 1/4 period signals to sce=sce+s(k)*s(k)/10000;end;re=sqrt(sce*200) %re indicate the pike value of .sce=0;si=si+1;end;end;NlenN0n=1:300;figure(3)plot(n,rec);4.4基于小波变换的图象去噪Normalshrink算法function [T_img,Sub_T]=threshold_2_N(img,levels)% reference :image denoising using wavelet thresholding[xx,yy]=size(img);HH=img((xx/2+1):xx,(yy/2+1):yy);delt_2=(std(HH(:)))^2;%(median(abs(HH(:)))/0.6745)^2;%T_img=img;for i=1:levelstemp_x=xx/2^i;temp_y=yy/2^i;% belt=1.0*(log(temp_x/(2*levels)))^0.5;belt=1.0*(log(temp_x/(2*levels)))^0.5; %2.5 0.8%HLHL=img(1:temp_x,(temp_y+1):2*temp_y);delt_y=std(HL(:));T_1=belt*delt_2/delt_y;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%T_HL=sign(HL).*max(0,abs(HL)-T_1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%T_img(1:temp_x,(temp_y+1):2*temp_y)=T_HL;Sub_T(3*(i-1)+1)=T_1;%LHLH=img((temp_x+1):2*temp_x,1:temp_y);delt_y=std(LH(:));T_2=belt*delt_2/delt_y;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%T_LH=sign(LH).*max(0,abs(LH)-T_2);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%T_img((temp_x+1):2*temp_x,1:temp_y)=T_LH;Sub_T(3*(i-1)+2)=T_2;%HHHH=img((temp_x+1):2*temp_x,(temp_y+1):2*temp_y);delt_y=std(HH(:));T_3=belt*delt_2/delt_y;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%T_HH=sign(HH).*max(0,abs(HH)-T_3);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%T_img((temp_x+1):2*temp_x,(temp_y+1):2*temp_y)=T_HH;Sub_T(3*(i-1)+3)=T_3;end4.5小波去噪matlab程序****************************************** clearclc%在噪声环境下语音信号的增强%语音信号为读入的声音文件%噪声为正态随机噪声sound=wavread('c12345.wav');count1=length(sound);noise=0.05*randn(1,count1);for i=1:count1signal(i)=sound(i);endfor i=1:count1y(i)=signal(i)+noise(i);end%在小波基'db3'下进行一维离散小波变换[coefs1,coefs2]=dwt(y,'db3'); %[低频高频] count2=length(coefs1);count3=length(coefs2);energy1=sum((abs(coefs1)).^2); energy2=sum((abs(coefs2)).^2); energy3=energy1+energy2;for i=1:count2recoefs1(i)=coefs1(i)/energy3;endfor i=1:count3recoefs2(i)=coefs2(i)/energy3;end%低频系数进行语音信号清浊音的判别zhen=160;count4=fix(count2/zhen);for i=1:count4n=160*(i-1)+1:160+160*(i-1);s=sound(n);w=hamming(160);sw=s.*w;a=aryule(sw,10);sw=filter(a,1,sw);sw=sw/sum(sw);r=xcorr(sw,'biased');corr=max(r);%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0 if corr>=0.8output1(i)=0;elseif corr<=0.1output1(i)=1;endendfor i=1:count4n=160*(i-1)+1:160+160*(i-1);if output1(i)==1switch abs(recoefs1(i))case abs(recoefs1(i))<=0.002recoefs1(i)=0;case abs(recoefs1(i))>0.002 & abs(recoefs1(i))<=0.003recoefs1(i)=sgn(recoefs1(i))*(0.003*abs(recoefs1(i))-0.000003)/0.002; otherwise recoefs1(i)=recoefs1(i);endelseif output1(i)==0recoefs1(i)=recoefs1(i);endend%对高频系数进行语音信号清浊音的判别count5=fix(count3/zhen);for i=1:count5n=160*(i-1)+1:160+160*(i-1);s=sound(n);w=hamming(160);sw=s.*w;a=aryule(sw,10);sw=filter(a,1,sw);sw=sw/sum(sw);r=xcorr(sw,'biased');corr=max(r);%为清音(unvoice)时,输出为1;为浊音(voice)时,输出为0 if corr>=0.8output2(i)=0;elseif corr<=0.1output2(i)=1;endendfor i=1:count5n=160*(i-1)+1:160+160*(i-1);if output2(i)==1switch abs(recoefs2(i))case abs(recoefs2(i))<=0.002recoefs2(i)=0;case abs(recoefs2(i))>0.002 & abs(recoefs2(i))<=0.003recoefs2(i)=sgn(recoefs2(i))*(0.003*abs(recoefs2(i))-0.000003)/0.002; otherwise recoefs2(i)=recoefs2(i);endelseif output2(i)==0recoefs2(i)=recoefs2(i);endend%在小波基'db3'下进行一维离散小波反变换output3=idwt(recoefs1, recoefs2,'db3');%对输出信号抽样点值进行归一化处理maxdata=max(output3);output4=output3/maxdata;%读出带噪语音信号,存为'101.wav'wavwrite(y,5500,16,'c101');%读出处理后语音信号,存为'102.wav'wavwrite(output4,5500,16,'c102');4.6 神经网络小波Matlab实现%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%clear allload dataM1=20;epo=15;A=4;B=18;B2=B/2+1N=500;M=(A+1)*(B+1);for a0=1:A+1;for b0=1:B+1;i=(B+1)*(a0-1)+b0;b_init(i)=((b0-B2)/10)/(2^(-A)); a_init(i)=1/(2^(-A));c_init(i)=(20-A)/2;endendw0=ones(1,M);for i=1:Nfor j=1:Mt=x(i);t= a_init(j)*t-b_init(j);%P0(i,j)= (cos(1.75*t)*exp(-t*t/2))/2^c_init(j);P0(i,j)= ((1-t*t)*exp(-t*t/2))/2^c_init(j);endend%calculation of output of networkfor i=1:Nu=0;for j=1:Mu=u+w0(j)*P0(i,j);%w0?aè¨?μendy0(i)= u;% y(p)= u=??W(j)*phi(p,j)= ??W(j)* |μj(t)end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%for k=1:MW(:,k)=P0(:,k);endfor k=2:Mu=0;for i=1:k-1aik(i)=(P0(:,k)'*W(:,i))/(W(:,i)'*W(:,i));u=u+aik(i) *W(:,i);endW(:,k)=P0(:,k)-u;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%for i=1:Mg(i)= (W(:,i)'*d')/( W(:,i)'* W(:,i));end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%u=0;for i=1:Mu=u+g(i)*(W(:,i)'*W(:,i));endDD=u;for i=1:MErro(i)=(g(i)^2)*(W(:,i)'*W(:,i))/DD;end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%k=1;while(k<=M1)u=1;for i=2:Mif abs(Erro(u))<abs(Erro(i));u=ielse u=uendendI(k)=u;Erro(u)=0k=k+1;end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%for k=1:M1u=I(k);a(k)=a_init(u);b(k)=b_init(u);c(k)=c_init(u);w1(k)=w0(u);end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%epoch=1;error=0.1;err=0.0001;lin=0.5;while (error>=err & epoch<=epo)for i=1:Nfor j=1:M1t=x(i);t= a(j)*t-b(j);%P1(i,j)= (cos(1.75*t)*exp(-t*t/2))/2^c(j);P1(i,j)= ((1-t*t)*exp(-t*t/2))/2^c(j);endend%calculation of output of networkfor i=1:Nu=0;for j=1:M1u=u+w1(j)*P1(i,j);endy1(i)= u;end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%u=0;for i=1:Nu=u+(d(i)-y1(i))^2;endu=u/2;%u=1/2??(d-p)^2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%if u>errorlin=lin*0.8;elselin=lin*1.2;enderror=u; %error=u=1/2??(d-p)^2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%for j=1:M1u=0;for i=1:Nu=u+(d(i)-y1(i))*P1(i,j);endEW(j)=-u;endif epoch==1SW=-EW;w1_=w1;elseSW=-EW+((EW*EW')*SW_)/(EW_*EW_');endEW_=EW;SW_=SW;w1=w1_+SW*lin;w1_=w1;%number of epoch increase by 1epoch=epoch+1;end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%subplot(2,1,1);plot(x,d);subplot(2,1,2);plot(x,y1);Matlab程序如下:function sd=liu_denoise(mix_signal)%此函数用于去除白躁信号&周期性干扰信号%输入参数mix_signal为采集到的信号波形p=0.6745;w_dept=9;w_name='db6';coef=cell(1,w_dept);thr=zeros(1,w_dept+1);[c,l]=wavedec(mix_signal,w_dept,w_name); %对混合信号S进行db6的9尺度一维分解coef(1)={appcoef(c,l,w_name,w_dept)};%计算尺度为9的一维分解低频系数cs=[cs,coef_soft{j}];thr(1)=median(abs(coef{1}))/p*sqrt(2*log(length(coef{1})));%计算1尺度上的阈值coef_soft(1)={wthresh(coef{1},'h',thr(1))};%对小波系数进行阈值为thr(1)的硬阈值处理cs=[coef_soft{1}];for j=2:w_dept+1coef(j)={detcoef(c,l,w_dept-j+2)};%计算尺度为9到2的各尺度高频小波系数coef1(j)={detcoef(c,l,w_dept-j+2)};thr(j)=median(abs(coef{j}))/p*sqrt(2*log(length(coef{j})));%计算9到2各尺度上的阈值coef_soft(j)={wthresh(coef{j},'h',thr(j))};%对小波系数进行阈值为thr(j)的硬阈值处理cs=[cs,coef_soft{j}];endsd=waverec(cs,l,w_name); %根据小波系数[cs,l]对信号进行重构4.2.2仿真分析为了验证去噪的有效性,先仿真产生一个局放脉冲然后叠加0.1倍白噪声和周期干扰,利用前面的程序去造,结果如图1,从图上可以看到去噪后信号与原始信号幅值、相位都基本没有变化程序如下:fc=40e4; %振荡频率t4=0.8e-3; %脉冲起始时间tn=1e-3; %总时间x=0:step:tn;x4=t4:step:tn;%s4=(exp((t4-x4)*13/t)-exp((t4-x4)*22/t)).*sin(2*pi*fc*x4);s4=(exp((t4-x4)/tr)-exp((t4-x4)/td)).*sin(2*pi*fc*x4);s4=[zeros(1,t4/step),s4];p=tn/step;n=0.1*randn(1,p); %产生白噪信号n=[n,0];s5=0.1*sin(2*pi*10000000*x); %产生周期性干扰信号s6=s4+n+s5;sd=liu_denoise(s6);subplot(311);plot(x,s4);title('单个局放脉冲仿真波形');subplot(312);plot(x,mix_signal);title('染噪后波形');subplot(313);plot(x,sd);title('小波去噪后波形');。

基于Matlab的信号釆样与重构仿真

基于Matlab的信号釆样与重构仿真别业广;凃玲英【摘要】在工程实际中,为了对信号进行有效地传输和处理,往往要将连续信号进行采样离散化,以便计算机分析处理.利用Matlab强大的信号处理能力,对一段音乐信号进行采样,在满足采样定理的前提下实现信号的重构.对信号进行截断处理后的采样频谱不发生混叠,重构后的信号误差小,播放的音乐音质保持比较完整.【期刊名称】《湖北工业大学学报》【年(卷),期】2017(032)004【总页数】3页(P29-30,38)【关键词】带限信号;信号的采样;信号的重构;滤波器【作者】别业广;凃玲英【作者单位】湖北工业大学理学院,湖北武汉 430068;湖北工业大学电气与电子工程学院,湖北武汉 430068【正文语种】中文【中图分类】TP211现实生活中的速度、温度、压力等大多是连续信号,而计算机处理的则是离散信号。

为了对有用信号进行有效传输和处理,需对连续信号进行采样。

经采样后,连续信号就变成了离散信号。

如何利用这些采样值在不丢失原信号中的信息量的前提下重构原连续信号?以电影为例,电影是由一组按时序的单个画面所组成,每一幅画面代表连续变化景象的一个瞬时画面(时间样本),当以足够快的速度来观看这些时序样本时,就会重现原来连续活动景象。

故而,要想确保连续信号采样后能够恢复原信号,必须遵循采样定理。

理想采样信号fs(t)是一个连续信号f(t)与一个冲激串δT(t)的乘积,T是抽样周期(图1)。

由图1知:若设f(t)是带限信号,其频谱为F(jω),带宽ωm,f(t)经采样后的频谱为FS(jω),则有其中:T为采样周期,Ω为采信率,且Ω=。

图2为信号采样及其频谱图。

由图2知,带限信号f(t)经采样后的频谱FS(jω)就是将F(jω)在频率轴上搬移至0,±Ω,± 2Ω,...±nΩ处。

因此,只有当采样率Ω≥2ωm时,采样后的频谱FS(jω)不发生混叠。

采样信号保留了原信号f(t)的全部信息。

基于MATLAB的信号系统仿真及应用

关键 词: M T A ;采样定理 ; 混叠: 汽车减震系统 A LB 中田分类号 :T 3 11 文
当T> ∞ 即采样频率 ∞。 c , , <o 2 时,采样信号的频谱会
发生混叠。 因而无法用低通滤波器获得原信号 的全部频谱,或者说
【】Mibe B r , + 3 c al a .C c +嵌入 式 系统编 程 . 北京 :中田 电力出版 r
社 , 201 0 .
作者简介 :王洪亮 ( 9 5) 男,江苏金坛 ,硕 士;扬 忠 (16 - 男,江苏 17 -, 9 9) , 南京 ,副教授 ,博士 ;沈春林 ( 95)男。浙江上虞。教授。博士生导 师. 13 , -

维普资讯
3 结 束 语
本文着重解决 了串 口通信与关键任务之间的冲突 问题。通过该 方法,工程 人员可 以根据需要,权衡各任务之 间的重要性,合理地 分配任 务的优 先级,从而可 以实现 串 口通信 与任 务之 间的协调运 转 。很好地解决了在前后 台系统 中关键任务被 中断打断的弊端。o

xt x( (= s o , ∑ xn s i (( , (n s) (= )ht T ( ) (T) a ) t ) cc Sc ∞c t T) )。
XU Ya h n- ui
信号 ,是分析其他信号 的基础 。将它作 为被采 样的信 号 设 xt S ( = i / 其 X( ) ( = a )s t. ) t nt i 为 ∞

∞ <1
X(∞ ) i =
0 ∞ ’ >1
() 1
( fn T a h r ’I siue o gn ei g a d J i e c es n t t fEn ie rn n l t

“信号与系统”Matlab实验仿真教学系统设计

“信号与系统”Matlab实验仿真教学系统设计作者:张尤赛,马国军,黄炜嘉,周稳兰来源:《现代电子技术》2010年第18期摘要:针对“信号与系统”课程硬件实验教学不够深入和灵活的缺点,在分析理论教学和工程实际需求的基础上,利用Matlab和Simulink,建立了“信号与系统”实验仿真教学系统,并从系统设计、内容设计、界面设计、开发工具、二次开发等五个方面对该系统进行了阐述。

实验教学表明,该系统可以克服硬件实验系统的局限性,加深和拓宽了实验内容和实验层次,增强了实验的灵活性,有利于培养学生的实验动手能力和创新能力。

关键词:信号与系统; Matlab; 实验仿真教学; Simulink中图分类号:TN911.7-34; G642.4文献标识码:A文章编号:1004-373X(2010)18-0057-03Design of Mtalab Experimental Simulation Teaching System in Signals and SystemsZHANG You-sai, MA Guo-jun, HUANG Wei-jia, ZHOU Wen-lan(School of Electronics and Information, Jiangsu University of Science and Technology, Zhenjiang 212003, China)Abstract: Aiming at the disadvantages of hardware experimental teaching in Signals and Systems, the experimental simulation teaching system of Signals and Systems based on Matlab and Simulink is established by emphasizing experimental teaching requirements of theoretical teaching and actual engineering. Thus, the system design, content design, interface design, development tools and repeatedly development are studied respectively. The effects of experimental teaching show that it overcomes the limitation of hardware experiment, expands experimental contents and level, improves students hands-on ability and comprehensive quality.Keywords: signals and systems; Matlab; experimental simulation teaching; Simulink0 引言信号与系统的基本概念、基本理论与分析方法在不同学科、专业之间有着广泛应用和交叉渗透[1]。

信号与系统MATLAB仿真——信号及其运算

信号与系统MATLAB仿真——信号及其运算1. 知识回顾(1)信号的分类:确定信号与随机信号;周期信号与⾮周期信号;周期信号在时间上必须是⽆始⽆终的f(t)=f(t+T)f[k]=f[k+N]连续时间信号和离散时间信号;连续信号是指在信号的定义域内,除若⼲个第⼀类间断点外,对于任意时刻都由确定的函数值的信号离散信号是指在信号的定义域内,只在某些不连续规定的时刻给出函数值,⽽在其他时刻没有给出函数的信号能量信号、功率信号与⾮功率⾮能量信号;时限与频限信号;物理可实现信号。

(2)信号能量:E=limT→∞∫T−T f2(t)dtP=limT→∞12T∫T−Tf2(t)dtE=limN→∞N∑k=−N|f[k]|2P=limN→∞12N+1N∑k=−N|f[k]|2能量信号:0<E<∞,P=0;功率信号:0<P<∞,E=∞。

(3)冲激函数的性质加权特性(筛选特性):f(t)δ(t−t0)=f(t0)δ(t−t0)取样特性:∫+∞−∞f(t)δ(t−t0)=f(t0)偶函数:f(t)=f(−t)展缩特性:δ(at)=1|a|δ(t)δ(at−t0)=1|a|δ(t−t0a)导数及其特性。

(4)正弦两个频率相同的正弦信号相加,即使其振幅和相位各不相同,但相加后结果仍是原频率的正弦信号;若⼀个正弦信号的频率是另⼀个正弦信号频率的整数倍时,则合成信号是⼀个⾮正弦周期信号,其周期等于基波的周期。

正弦型序列:f[k]=A sin(Ω0k+φ)2π/Ω0是正整数:周期序列,周期为N;2π/Ω0为有理数,2π/Ω0=N/m:周期序列,周期N=m(2π/Ω0);2π/Ω0为⽆理数:⾮周期序列,但包络仍为正弦函数。

(5)抽样信号Sa(t)=sin t t偶函数;Sa(0)=1;t=kπ为其零点;∫+∞−∞Sa(t)dt=π;limt→±∞Sa(t)=0。

(6)信号的分解分解为直流分量与交流分量;奇偶分解;分解为实部和虚部;分解为基本信号的有限项之和;因⼦分解;连续信号分解为矩形脉冲序列;正交分解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用 MATLAB实现连续信号的采样与重构仿真 一. 课程设计的目的 1. 掌握利用MATLAB分析系统频率响应的方法,增加对仿真软件MATLAB的感性认识,学会该软件的操作和使用方法。 2. 掌握利用MATLAB实现连续信号采用与重构的方法,加深理解采样与重构的概念。 3 . 初步掌握线性系统的设计方法,培养独立工作能力。 4. 学习MATLAB中信号表示的基本方法及绘图函数的调用,实现对常用连续时间信号的可视化表示,加深对各种电信号的理解。 5. 加深理解采样对信号的时域和频域特性的影响;验证信号与系统的基本

概念、基本理论,掌握信号与系统的分析方法。 6. 加深对采样定理的理解和掌握,以及对信号恢复的必要性;掌握对连续信号在时域的采样与重构的方法。 二. 课程设计的内容及要求

1.课程设计的内容 离散正弦序列的MATLAB表示与连续信号类似,只不过是用stem函数而不是用plot函数来画出序列波形。命令窗口没打开时,从“Desktop”菜单中选择“Command Window”选项可以打开它。“>>”符号是输入函数的提示符,在提示符后面输入数据和运行函数。 退出MATLAB时,工作空间中的内容随之清除。可以将当前工作中的部分或全部变量保存在一个MAT文件中,它是一种二进制文件,扩展名为.mat。然后可在以后使用它时载入它。 用MATLAB的当前目录浏览器搜索、查看、打开、查找和改变MATLAB路径和文件。在MATLAB桌面上,从“Desktop”菜单中选择“Current Directory”选项,或者在命令窗口键入“filebrowser”,打开当前目录浏览器。使用当前目录浏览器可以完成下面的主要任务:查看和改变路径;创建、重命名、复制和删除路径和文件;打开、运行和查看文件的内容; 由于函数)(tSa不是严格的带限信号,其带宽m可根据一定的精度要求做一近似。根据以下三种情况用MATLAB实现采样信号及重构并求出两者误差,分析三种情况下的结果。 (1))(tSa的临界采样及重构:,1m,mc,mispT/4.2; (2))(tSa的过采样及重构:1m,mc1.1,mispT/5.2; (3))(tSa的欠采样及重构:1m,mc,mispT/5.2。 2.课程设计的方案

2.1课程设计的原理 2.1.1连续信号的采样定理 模拟信号经过 (A/D) 变换转换为数字信号的过程称为采样,信号采样后其频谱产生了周期延拓,每隔一个采样频率 fs,重复出现一次。为保证采样后信号的频谱形状不失真,采样频率必须大于信号中最高频率成分的两倍,这称之为采样定理。时域采样定理从采样信号恢复原信号必需满足两个条件:

(1) 必须是带限信号,其频谱函数在 > 各处为零;(对信号的要求,即只有带限信号才能适用采样定理。)

(2) 取样频率不能过低,必须 >2 (或 >2)。(对取样频率的要求,即取样频率要足够大,采得的样值要足够多,才能恢复原信号。)如果采样频率大于或等于,即(为连续信号的有限频谱),则采样离散信号能无失真地恢复到原来的连续信号 。一个频谱在区间(- ,)以外为零的频带有限信号,可唯一地由其在均匀间

隔 ( < )上的样点值所确定。根据时域与频域的对称性,可以由时域采样定理直接推出频域采样定理。一个时间受限信号tf,它集中在(mm,)的时间范围内,则该信号的频谱jF在频域中以间隔为1的冲激序列进行采样,采样后的频谱)(1jF可以惟一表示原信号的条件为重复周期

mtT21,或频域间隔mtf2121(其中112T)。采样信号 的频谱是原

信号频谱 的周期性重复,它每隔 重复出现一次。当s>2 时,不会出现混叠现象,原信号的频谱的形状不会发生变化,从而能从采样信号 中恢复原信号 。(注:s>2 的含义是:采样频率大于等于信号最高频率的2倍;这里的“不混叠”意味着信号频谱没有被破坏,也就为后面恢复原信号提供了可能!)

(a) (b) (c) 图* 抽样定理 a) 等抽样频率时的抽样信号及频谱(不混叠) b) 高抽样频率时的抽样信号及频谱(不混叠) c) 低抽样频率时的抽样信号及频谱(混叠) 2.1.2信号采样 如图1所示,给出了信号采样原理图

信号采样原理图(a) 由图1可见,)()()(ttftfsTs,其中,冲激采样信号)(tsT的表达式为: nsTnTtts)()(

其傅立叶变换为nssn)(,其中ssT2。设)(jF,)(jFs分别为)(tf,)(tfs的傅立叶变换,由傅立叶变换的频域卷积定理,可得 nssnsssnjFTnjFjF)]([1)(*)(21)(

若设)(tf是带限信号,带宽为m, )(tf经过采样后的频谱)(jFs就是将)(jF在频率轴上搬移至,,,,,02nsss处(幅度为原频谱的sT1倍)。因此,当ms2时,频谱不发生混叠;而当ms2时,频谱发生混叠。 一个理想采样器可以看成是一个载波为理想单位脉冲序列)(tT的幅值调制器,即理想采样器的输出信号)(*te,是连续输入信号)(te调制在载波)(tT上的结果,如图2所示。 图2 信号的采样 用数学表达式描述上述调制过程,则有 )()()(*tteteT 理想单位脉冲序列)(tT可以表示为 0)()(nTnTtt

其中)(nTt是出现在时刻nTt,强度为1的单位脉冲。由于)(te的 数值仅在采样瞬时才有意义,同时,假设 00)(tte

所以)(*te又可表示为 *0()()()netenTtnT

2.1.3信号重构 设信号)(tf被采样后形成的采样信号为)(tfs,信号的重构是指由)(tfs经过内插处理后,恢复出原来信号)(tf的过程。又称为信号恢复。 若设)(tf是带限信号,带宽为m,经采样后的频谱为)(jFs。设采样频率

ms2,则由式(9)知)(jFs是以s为周期的谱线。现选取一个频率特性





ccsTjH0)((其中截止频率c满足2scm)的理想低通滤波器

与)(jFs相乘,得到的频谱即为原信号的频谱)(jF。 显然,)()()(jHjFjFs,与之对应的时域表达式为 )(*)()(tfthtfs (10) 而 nssnssnTtnTfnTttftf)()()()()(

)()]([)(1tSaTjHFthccs

将)(th及)(tfs代入式(10)得 nscscsccssnTtSanTfTtSaTtftf)]([)()(*)()(

 (11)

式(11)即为用)(snTf求解)(tf的表达式,是利用MATLAB实现信号重构的基本关系式,抽样函数)(tSac在此起着内插函数的作用。 例:设tttSatfsin)()(,其)(jF为:





101

)(jF

即)(tf的带宽为1m,为了由)(tf的采样信号)(tfs不失真地重构)(tf,由时域采样定理知采样间隔msT,取7.0sT(过采样)。利用MATLAB的抽样函数tttSinc)sin()(来表示)(tSa,有)/()(tSinctSa。据此可知: nscscsccssnTtSincnTfTtSaTtftf)]([)()(*)()(



通过以上分析,得到如下的时域采样定理:一个带宽为wm的带限信号f(t),可唯一地由它的均匀取样信号fs(nTs)确定,其中,取样间隔Ts隔又称为奈奎斯特间隔。 根据时域卷积定理,求出信号重构的数学表达式为:

式中的抽样函数Sa(wct)起着内插函数的作用,信号的恢复可以视为将抽样函数进行不同时刻移位后加权求和的结果,其加权的权值为采样信号在相应时刻的定

义值。利用MATLAB中的抽样函数来表示Sa(t),有,,于是,信号重构的内插公式也可表示为: 2.2设计的思路 连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点以外,信号都有确定的值与之对应。严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。时域对连续时间信号进行采样,是给它乘以一个采样脉冲序列,就可以得到采样点上的样本值,信号被采样前后在频域的变化,可以通过时域频域的对应关系分别求得了采样信号的频谱。 在一定条件下,一个连续时间信号完全可以用该信号在等时间间隔上的瞬时值来表示,并且可以用这些样本值把信号完全恢复过来。这样,抽样定理为连续时间信号与离散时间信号的相互转换提供了理论依据。通过观察采样信号的频谱,发现它只是原信号频谱的线性重复搬移,只要给它乘以一个门函数,就可以在频域恢复原信号的频谱,在时域是否也能恢复原信号时,利用频域时域的对称关系,得到了信号。

2.3详细设计过程 2.3.1)(tSa的临界采样及重构 1实现程序代码 当采样频率小于一个连续的同信号最大频率的2倍,即ms2时,称为临界采样. 修改门信号宽度、采样周期等参数,重新运行程序,观察得到的采样信号时域和频域特性,以及重构信号与误差信号的变化。 Sa(t)的临界采样及重构程序代码; wm=1; %升余弦脉冲信号带宽 wc=wm; %频率

相关文档
最新文档