@本文地址
MATLAB简介
我们利用MATLAB和Verilog语言进行软件无线电开发。MATLAB的主要优势体现在以下方面:
1.友好的工作平台和编程环境 2.简单易用的程序语言 3.强大的科学计算处理能力 4.出色的图形处理能力 5.应用广泛的集合模块工具 6.实用的程序接口平台 7.包括用户界面的软件开发
常用信号产生函数
分三类 内部函数 工具箱里封装的函数 自己写的函数
rand(m,n)
:产生[0,1]时域均匀分布序列
randn(m,n)
:产生[0,1]频域均匀分布序列,即1W白噪声(零均值,1方差)
square(T)
:T为周期,1为幅值的方波
square(T,DUTY)
:T为周期,1为幅值的方波,DUTY占空比,设为0~100,默认50
sawtooth(T,width)
T为周期,宽度为width的三角波
sin sinh asin asinh cos cosh acos acosh tan cot tanh coth
是T为周期,1为幅值的
下面为一例子:
%产生方波、正弦波和三角波
psin=10;
pnoise=1;
f=100;
fs=1000;
width=0.5;
duty1=50;
duty2=75;
duty3=25;
%% wavegenerator
t=0:1/fs:0.1;
c=2*pi*f*t;
sq=square(c);
sq1=square(c,duty1);
sq2=square(c,duty2);
sq3=square(c,duty3);
tr=sawtooth(c,width);
si=sin(c);
%% 随机信号
noi=rand(1,length(t));
noise=randn(1,length(t));
sin_noise=sqrt(2*psin)*si+sqrt(pnoise)*noise;
sin_noise_gui1=sin_noise/max(sin_noise);
%% draw
subplot(4,2,1);plot(t,sq);
subplot(4,2,2);plot(t,sq1);
subplot(4,2,3);plot(t,sq2);
subplot(4,2,4);plot(t,sq3);
subplot(4,2,5);plot(t,tr);
subplot(4,2,6);plot(t,noi);
subplot(4,2,7);plot(t,noise);
subplot(4,2,8);plot(t,sin_noise);
结果如图:
常用信号处理和滤波函数
滤波函数filter
任何一个离散系统都可以看成是一个数字滤波器,系统输出就是输入信号经过滤波后的结果。 filter涉及离散时间系统的系统函数。对于一个N阶系统而言,其系统函数可以表示为:
差分方程: 由此,将a,b各元素从小到大排列(a0=1)可以得到唯一的行向量a,b,其确定了唯一的离散时间系统。
单位抽样响应函数impz
impz(b,a,p)
:确定了由分子向量、分母向量和点数p得到的单位抽样相应的输出向量。不设p值将默认。绘出杆图
h=impz(b,a,p)
:确定了由分子向量、分母向量和点数p得到的单位抽样相应的输出向量。不设p值将默认。将单位抽样响应向量保存于h中
单位滤波函数freqz
freqz(b,a,x)
:确定了由分子向量、分母向量和输入得到的输出向量。由此得到x经过滤波器滤波后的输出结果。
filter(b,a,x)
:确定了由分子向量、分母向量和输入得到的输出向量。由此得到x经过滤波器滤波后的输出结果。