您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > MATLAB课件第六章201404.
第六章MATLAB在信号分析与处理中的应用信号及其表示连续时间信号离散时间信号信号分析及处理序列的操作信号频谱分析图像线性变换6.1信号及其表示6.1.1工具箱中的连续时间信号产生函数函数名功能函数名功能sawtooth锯齿波或三角波信号pulstran冲激串square方波信号rectpule非周期的方波信号sincsinc函数波形tripuls非周期的三角波信号chirp调频余弦信号vco电压控制振荡器gauspuls高斯正弦脉冲信号gmonopuls高斯单脉冲信号t=0:0.01:6*pi;x=square(t,40)plot(t,x)axis([0,20,-1.1,1.1])例1.产生一个方波,正信号40%fs=10000;t=0:1/fs:1.5;x=sawtooth(2*pi*50*t);plot(t,x)axis([0,0.2,-1,1])例2.产生一个1.5s的50Hz的锯齿波,采样率10kHz.t=linspace(-5,5);x=sinc(t);plot(t,x)例3.产生一个sinc信号.t=0:1/50e3:10e-3;%抽样频率50kHz,抽样时间10msd=[0:1/1e3:10e-3;0.8.^(0:10)]’;%第一列说明每一脉冲的延迟时间,第二列说明每一次幅值衰减x=pulstran(t,d,’gauspuls’,10e3,0.5);%调制波为高斯噪声,频率1kHz,带宽50%plot(t,x)例4.产生一个脉冲调制信号例.绘制离散时间信号的棒状图。其中x(-1)=-1,x(0)=1,x(1)=2,x(2)=1,x(3)=0,x(4)=-1。n=-3:5;%定位时间变量x=[0,0,-1,1,2,1,0,-1,0];stem(n,x);grid;line([-3,5],[0,0]);xlabel('n');ylabel('x[n]')6.1.2离散时间信号的表示1.单位脉冲序列直接实现:n=1:N;x=zeros(1,N);x(1,n0)=1;00001)(nnnnnn2.单位阶跃序列00001)(nnnnnnu直接实现:n=[ns:nf];x=[(n-n0)=0];6.1.3几种常用离散时间信号的表示3.实指数序列nanx)(nRa直接实现:n=[ns:nf];x=a.^n;4.复指数序列njenx)()(直接实现:n=[ns:nf];x=exp((sigema+jw)*n);5.正(余)弦序列)cos()(nnx直接实现:n=[ns:nf];x=cos(w*n+sita);6.2.1序列的操作1.信号加x(n)=x1(n)+x2(n)MATLAB实现:x=x1+x2;2.信号乘x(n)=x1(n)x2(n)MATLAB实现:x=x1.*x2;6.2信号分析与处理3.改变比例y(n)=k*x(n)MATLAB实现:y=k*x;4.折叠y(n)=x(-n)MATLAB实现:y=fliplr(x);5.抽样和MATLAB实现:y=sum(x(n1:n2));21)(nnnnxy6.抽样积MATLAB实现:y=prod(x(n1:n2));7.信号能量MATLAB实现:y=sum(abs(x).^2);8.信号功率MATLAB实现:y=sum(abs(x).^2)/N;)(21nxynnnnnxEx2)(102)(1NnnxNPxt=(0:0.001:1)’;x=sin(2*pi*50*t)+2*sin(2*pi*120*t);y1=sum(x(1:50));%抽样和y2=prod(x(1:50));%抽样积Ex=sum(abs(x).^2);%信号能量Px=sum(abs(x).^2)/length(x);%信号功率例5产生一个叠加信号,并计算它的抽样和、抽样积、信号能量功率等。6.2.2信号频谱分析将时域信号变换至频域加以分析的方法称为频谱分析。频谱分析的目的是把复杂的时间历程波形,经过傅里叶变换分解为若干单一的谐波分量来研究,以获得信号的频率结构以及各谐波和相位信息。MATLAB频谱分析函数y=fft(x),返回向量x的不连续fourier变换信号频谱分析举例例6利用函数生成一组数据用以模拟电力现场测量数据,并利用MATLAB编程实现其频谱分析。其中,x=2sin(2pf1t)+ sin(2pf2t),f1 = 100,f2 = 300。在信号x中加入随机信号,用以模拟信号噪声。fs=1000;t=0:1/fs:0.6%设置采样频率为1000Hzf1=100;f2=300;x=sin(2*pi*f1*t)+sin(2*pi*f2*t);subplot(411);plot(x);title('f1(100Hz)\f2(300Hz)')xlabel('n');gridon;number=512%设置用于FFT计算的数据点数为512个;y=fft(x,number);%对x信号进行512点的傅里叶变换;n=0:length(y)-1;f=fs*n/length(y)%设置频率轴坐标subplot(412)plot(f,abs(y))title('FFT')xlabel('Hz')gridonx=x+randn(size(x));%在信号中加入噪声subplot(413),plot(x)title('含随机噪声的信号')xlabel('序列N'),gridony=fft(x,number);%对含噪声信号进行512点的傅立叶变换n=0:length(y)-1;f=fs*n/length(y)%设置频率轴坐标subplot(414)plot(f,abs(y))title('含随机噪声的信号的FFT')xlabel('Hz')grid6.2.3图像灰度线性变换图像亮度的最大值与最小值之比称为对比度,提高图像的对比度可以使得图像的灰度层次更加清晰可辨。灰度线性变换指的是将图像中某一区域的灰度值通过线性拉伸至一个更大的范围,使原本位于该区域的图像对比度得到增强。假定原图像表示为g(x,y),现希望将图像g(x,y)的范围从[a,b]的灰度拉伸至范围[c,d]。变换形式如下:255),(),(),(),(0),(yxgbdbyxgacayxgabcdayxgcyxg灰度线性变换的MATLAB实现MATLAB提供函数imadjust来完成灰度线性变换,其调用形式如下:Z=imadjust(x,[low_inhigh_in],[low_outhigh_out]x=imread('rice.tif');z=imadjust(x,[0.30.5],[01]);subplot(121)imshow(x)subplot(122)imshow(z)图像分段线性变换分段线性变换指的是将待处理图像的灰度分割为若干区间,对这些区间分别进行线性变换的操作。假定原图像表示为g(x,y),现将图像的灰度范围分割成三段:[0,a),[a,b),[b,255]。变换形式如下:255),(),(255255),(),(),(0),(),(yxgbdbyxgbdbyxgacayxgabcdayxgyxgacyxgfunctionz=imadjust_sec(x,a,b,c,d)[height,width]=size(x);x1=im2double(x);fori=1:heightforj=1:widthif(x1(i,j)a)z(i,j)=c*x1(i,j)/a;elseif(x1(i,j)=a&x1(i,j)b)z(i,j)=(d-c)*(x1(i,j)-a)/(b-a)+c;elsez(i,j)=(1-d)*(x1(i,j)-b)/(1-b)+d;endendendx=imread('rice.tif');z=imadjust_sec(x,0.3,0.5,0.2,0.6);subplot(121)imshow(x)subplot(122)imshow(z)
本文标题:MATLAB课件第六章201404.
链接地址:https://www.777doc.com/doc-2887893 .html