本篇主要分为两部分来阐述,分别为:离散信号和系统,Fourier分析。

(1)离散信号与系统

离散时间信号是最常见的信号形式,对连续时间信号进行采样可以得到离散时间信号。

A离散信号

例1 画出x=cos2t,0<=t<=2*pi的抽样序列,抽样周期为0.1s。
clear all
t=0:0.1:2*pi;//抽样时间
x=cos(2*t);
stem(t,x);

B 卷积和

卷积和是求离散线性时不变系统的主要方法。MATLAB给出了求两个线性卷和函数conv(x,y).利用它可以方便的求出两个序列的卷积和。
例2 求序列h(n)=exp(-0.1*n),x(n)=exp(-0.2*n),0<=n<=40的卷积和。代码如下:
clear all
n=0:40;
x1=sin(2*pi*0.1*n);
x2=exp(-0.1*n);
x=x1+x2;
y=x1.*x2;
subplot(4,1,1);stem(n,x1);title('x1')
subplot(4,1,2);stem(n,x2);title('x2')
subplot(4,1,3);stem(n,x);title('x')
subplot(4,1,4);stem(n,y);title('y')

C求输出相应

一个离散时间系统可以是一个硬件装置,也可以是一个数学表达式。总之,输入输出有一种关系存在,我们知道输入,就可以得到输出。
例3 一个离散时间系统输入/输出关系为:
y(n)=a*y(n-1)+x(n);
若:
(1)x(n)=1,n=0;
(2)x(n)=exp(-0.1*n),0<=n<=40;
且a=0.8,y(n)=0,n<0,y(0)=x(0),试求上述系统在所给定输入下的相应。
clear all
N=60;
x1=zeros(1,N);
x1(1)=1;
x2=zeros(1,N);
x2(1:41)=exp(-0.1*(0:40));
y1(1)=x1(1);
y2(1)=x2(1);
for n=2:N
y1(n)=0.8*y1(n-1)+x1(n);
y2(n)=0.8*y2(n-1)+x2(n);
end
subplot(4,1,1);stem(x1);title('x1')
subplot(4,1,2);stem(x2);title('x2')
subplot(4,1,3);stem(y1);title('y1')
subplot(4,1,4);stem(y2);title('y2')

(2)Fourier分析

Fourier分析包括了连续时间和离散时间Fourier变换和Fourier级数,以及包括数字信号处理中最基本也是最重要的离散Fourier变换(DCT);

A 连续时间信号的Fourier变换

F=fourier(f)是符号函数f的Fourier变换,默认返回是关于w的函数。
f=ifourier(F)是函数F的Fourier逆变换,默认的独立变量是w,默认返回是关于x的函数。
注意:
(1)在调用fourier和ifourier之前,需用syms命令对所用到的变量进行说明,即要将这些变量说明成符号变量。
(2)采用fourier和ifourier得到的返回函数,仍然是符号表达式。如需对返回的函数作图,应该用ezplot绘图命令而不是plot命令。如果返回函数中含有狄利克雷函数,ezplot也无法绘图。
例1 试绘出连续时间信号f(t)=t*exp(-abs(t))的时域波形f(t)及相应的幅频特性。
代码如下:
clear all
syms t;
f=t*exp(-abs(t));
subplot(1,2,1);ezplot(f);
F=fourier(f)
subplot(1,2,2);ezplot(abs(F));

例2 若某信号的fourier变换F(w)=pi*exp(-abs(w)),试绘出该信号的时域波形和频谱图。
clear all
syms t w;
F=pi*exp(-abs(w));
subplot(1,2,1); ezplot(abs(F));
f=ifourier(F,t)
subplot(1,2,2); ezplot(f)

B离散时间的Fourier变换

例1 求下列序列的DTFT并绘制频谱图(1)h(n)=exp(-abs(0.1*n1));-15<=n<=15
(2)h(n)=1,0<=n<=20
代码如下:
clear all
w=-4:0.001:4;%matlab无法计算连续变量w
n1=-15:15;
n2=0:20;
h1=exp(-abs(0.1*n1));
h2(n2+1)=1;
Hjw1=h1*(exp(-j*pi).^(n1'*w));
%这里是fourier的展开形式
Hjw2=h2*(exp(-j*pi).^(n2'*w));
subplot(2,1,1);plot(w,abs(Hjw1))
title('H1');xlabel('pi弧度(w)');ylabel('振幅')
subplot(2,1,2);plot(w,abs(Hjw2));
title('H2');xlabel('pi弧度(w)');ylabel('振幅')

注意:在实域的卷积相当于在频域相乘,因此可以通过Y->y,绕过求卷积的步骤。
例1 一个系统的单位脉冲相应为h(n)=sin(0.2*n)*exp(-0.1*n).0<=n<=30.试求:
(1)该系统的频率相应
(2)若输入信号为x(n)=2*sin(0.2*pi*n)+3*cos(0.4*pi*n),0<=n<=30,确定该系统的稳态输出相应。
程序代码如下:clear all
w=-1:0.001:1;
n=0:30;
h=sinc(0.2*n);
x=2*sin(0.2*pi*n)+3*cos(0.4*pi*n);
Hjw=h*(exp(-j*pi).^(n'*w));
Xjw=x*(exp(-j*pi).^(n'*w));
Yjw=Xjw.*Hjw;
n1=0:2*length(n)-2;
dw=0.001*pi;
y=(dw*Yjw*(exp(j*pi).^(w'*n1)))/(2*pi);
y1=conv(x,h);
subplot(3,1,1);plot(w,abs(Hjw))
title('H');xlabel('pi弧度(w)');ylabel('振幅')
subplot(3,1,2);plot(w,abs(Xjw));
title('X');xlabel('pi弧度(w)');ylabel('振幅')
subplot(3,1,3);plot(w,abs(Yjw));
title('Y');xlabel('pi弧度(w)');ylabel('振幅')figure
subplot(2,1,1);stem(abs(y));title('通过IDTFT计算出的输出序列Y');
subplot(2,1,2);stem(abs(y1));title('通过时域卷积计算出的输出序列Y1')

注意:
(1)由于IDTFT的定义中用到了积分,为了在程序中能够实现,我们用分段求和的方法来代替积分。

C 离散Fourier变换

我们在前边讲了离散时间信号的Fourier变换,它有两个特点:
(1)变换是用于无限长的序列。
(2)变换的结果是自变量w的连续函数。从数值计算的角度来看,第二个特点限制了它的应用范围,因为要求计算序列无限项和。在前边为了计算无限长序列DTFT,是把序列进行截断而得到有限长的近似。换句话说,DTFT虽然在理论上具有很重要的意义,但在实际中往往很难得到,不适合在计算机上实现。为了在实际中得到信号的频域变换,需要一种在时域和频域都是离散的Fourier变换,这就是DFT。由于长序列的DFT计算量相当大,因此出现了几种计算DFT的高效方法,统称为FFT。事实上,正是由于FFT的出现,才使得DFT在实际上得到了广泛的应用。
例1  一个离散序列x(n)=sin(0.2*n)*exp(-0.1*n),0<=n<=30,试求该序列的DFT。程序代码如下:
clear all
n=0:30;
x=sin(0.2*n).*exp(-0.1*n);
k=0:30;
N=31;
Wnk=exp(-j*2*pi/N).^(n'*k);
X=x*Wnk;
subplot(2,1,1);stem(n,x);title('序列x')
subplot(2,1,2);stem(-15:15,[abs(X(17:end)) abs(X(1:16))])
title('X幅度')
注意:
因为DFT默认的下标范围是[0,N-1],采取对下标的重新排列,是为了体现序列DFT的对称性。

Fourier变换的循环卷积和线性卷积

例1  已知序列h(n)={6,3,4,2,1,-2},x(n)={3,2,6,7,-1,-3},试分别用直接法和DFT求两个序列的循环卷积序列。
程序打码如下:
clear all
h=[6 3 4 2 1 -2];
x=[3 2 6 7 -1 -3];
h1=fliplr(h);
H=toeplitz(h,[h(1) h1(1:5)]);%生成循环矩阵
y=H*x';H=fft(h);
X=fft(x);
Y=H.*X;
y1=ifft(Y);subplot(2,1,1);stem(y);title('直接计算')
subplot(2,1,2);stem(y1);title('DFT计算')

DFT也可以计算线性卷积,对x(n),h(n)分别扩展。
例2 已知序列h(n)sinc(0.2*n),0<=n<=20,x(n)=exp(-0.2*n),0<=n<=10,试分别用直接发和DFT计算线性卷积序列。
代码如下:
clear all
n1=0:20;
n2=0:10;
h=sinc(0.2*n1);
x=exp(-0.2*n2);
y=conv(x,h);h1=[h zeros(1,length(x)-1)];
x1=[x zeros(1,length(h)-1)];
H1=fft(h1);
X1=fft(x1);
Y1=H1.*X1;
y1=ifft(Y1);subplot(2,1,1);stem(y);title('直接计算')
subplot(2,1,2);stem(y1);title('DFT计算')

结果为:

通信信号与系统分析(一)相关推荐

  1. 通信信号与系统分析(四 基于simulink仿真)

    Simulink是一个用来对动态系统进行建模仿真和分析的软件包,它提供了一种图形化的交互环境,易学易用,simulink是MATLAB下的一个软件包,在MATLAB主页菜单上有simulink库的按钮 ...

  2. 离散信号与系统分析(上)

    离散信号与系统分析 一.利用MATLAB产生离散信号 1.前言部分 stem(X,Y):在X的指定点处画出数据序列Y: stem(X,Y,'filled'):以实心的方式画出茎秆: axis([xmi ...

  3. 请教 ANDROID 通信信号、网络信号图标的颜色问题

    在2.3源码中查看状态栏图标的时候遇到个问题,麻烦高手帮忙解决一下: 关于通信信号.网络信号的图标,ANDROID源代码中有两套,一套是灰的,一套是绿的,如下图所示. 2011-6-15 09:52: ...

  4. 基于matlab的雷达和通信系统,基于MATLAB的多功能通信信号源仿真

    第 29 卷 第 3 期 2006 年 9 月 电 子 器 件 Chinese Journal of Electron Devices Vol. 29 No. 3 Sep. 2006 Simulati ...

  5. 基于FPGA的通信信号源设计

    verilog实现基于FPGA的通信信号源设计 要求: 能够发射正弦波 对发出的正弦波进行2ask,2fsk,2psk,2dpsk调制 调制时用到PN序列(伪随机序列) 步骤: 第一步:产生两个频率不 ...

  6. 计算机专业进铁路工资待遇,铁道通信信号工资一般是多少

    bawenwo 新兵答主 09-02 TA获得超过9810个赞 首先对这两个专业进行下介绍 铁道机车车辆 是一个集合名词,称呼所有在铁路运输上的车辆.通常包含了有动力及无动力两种,如铁路机车.铁路车辆 ...

  7. matlab 复频域,MATLAB信号与系统分析(四)——离散信号与系统的复频域分析及MATLAB实现...

    一.系统的z变换和反变换 1.利用部分分式展开求解逆Z变换: 2.例子 3.Z变换的MATLAB函数 clear all f=sym('cos(a*k)'); F=ztrans(f) F=sym('z ...

  8. 学城市轨道交通信号技术要学计算机吗,城市轨道交通通信信号技术专业怎么样?...

    城市轨道交通通信信号技术专业怎么样?目前,我国城市轨道交通正处于发展的黄金时期,轨道交通的运营城市不断增加,技术设备不断完善,使得轨道交通专业的技术人员尤其紧缺,城市轨道交通通信信号专业是服务于城市轨 ...

  9. 宝藏又小众的网络 通信 信号cc0高清摄影图片素材网站分享

    网络 通信 信号cc0高清摄影图片类资源应该算是素材类网站中必不可少的资源类型了吧~今天给大家推荐超好用,免费质量高的素材噢,让你坐拥海量资源同时又不撞款! 因为小编的工作原因,经常会使用到网络 通信 ...

  10. 基于GNU Radio 无线电平台实现各种常规通信信号的模拟,可以结合ad9361、USRP、HackRFone等SDR平台实现发射和接收实验

    一.GNU Radio 介绍 GNU Radio是一个用来帮助无线通信开发者设计.搭建和实现无线通信系统的框架和工具.GNU Radio具有高度模块化.基于流程图的特点,针对复杂的信号处理应用场景,提 ...

最新文章

  1. selenium一些基本语句
  2. android okhttp 多线程,android – Okhttp Authenticator多线程
  3. ShowAllPic--图片
  4. 使用spring initialization创建SpringBoot项目
  5. [实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册
  6. 近日的思绪(外三首)
  7. 小米公布Q1手机出货量:驳斥暴跌谣言
  8. Genome2D官方博客及教程
  9. CentOS桥接网卡配置
  10. LOJ10068(BZOJ1977)(Luogu4180)
  11. 解决Word中出现的多级列表编号不显示的问题
  12. xml转matlab目标检测,将Cityscape转换为PASACAL VOC格式的目标检测数据集
  13. matlab图片背景分割,12.4.2 图像分割
  14. sql 修改时间正价 2天_“熬夜3天,修改17遍,我终于写出了1篇稿费2万的稿子”...
  15. BeanUtils.populate的用法
  16. STM32初学者KILE5软件的使用
  17. 5V的OVP过压保护IC,去掉不良率
  18. Elasticsearch: date时间数据格式踩过的坑
  19. 每日英语:As World's Kids Get Fatter, Doctors Turn To The Knife
  20. 《CSS禅意花园》读后感

热门文章

  1. 组态王 力控 MCGS 瑞尔 杰控等国内组态软件一点看法
  2. 解决SVN汉化不成功问题,下载历史版本
  3. Matlab Copula函数实现
  4. 2021年安全生产模拟考试(全国特种作业操作证电工作业-高压电工模拟考试题库一)
  5. Spine 2D骨骼动画 教程整理 归档于此
  6. Python游戏编程入门-打飞机
  7. HTK中函数ProcessCrossWordLinks处理流程
  8. C语言从入门到精通需要多久?你真的知道吗!
  9. 电脑九大常用的网络命令 ,很实用!
  10. 《Windows黑客编程技术》—— 学习历程