MATLAB中信号的产生方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 中信号的产生方法
通信系统中的符号是抽象的概念,必须要将抽象的符号转化为具体的信号形式才能在信道中有效的传输。
下面介绍通信信号在MA TLAB 中的的表示方法。
(1) 单极性波形
设代码有二进制符号0、1组成,单极性波形如图所示
设E=1,对此波形进行抽样,设每个符号抽取4个样值,则抽样序列如下:
1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
设符号数为m ,每个符号抽取k 个样值用,MATLAB 编程产生上述序列并画出波形图的函数文件insignal.m 如下:
function[in]=insignal(m,k)
indata=randint(1,m);
for n=1:m
if indata(n)==1
in((n-1)*k+1:n*k)=1;
else
in((n-1)*k+1:n*k)=0;
end
end
主程序in.m 调用insignal.m 函数文件
clear
clc
m=10;
k=4;
in=insignal(m,k);
stem(in,'.')
【例题】设码速率为10Kbit/s 随机二进制序列,抽样速率为100Kbit/s,产生满足上述条件的符号长度为100的抽样序列并画出上述波形。
编写主程序调用insignal.m 函数文件如下:
clear
clc
m=100;
fb=10000;
fs=100000;
k=fs/fb;
in=insignal(m,k);
stem(in,'.')
(2) 正弦波序列
给定正弦波信号信 )(t x 号的幅度、频率、初始相位和抽样频率,则可以得到离散的正弦波序列表示式。
如:x(t)=Asin(2πft+φ)
设采样频率为fs ,则采样时间点t=(1/fs)*n
则 x(n)=Asin(2πf/fs*n+φ)
(3) 各种调制信号的表示
正弦调幅波信号 t f t f a A t x c m m c ππ2c o s ))2sin(1()(+=
设抽样频率为fs ,正弦调幅波序列为
n f f n f f a A n x s
c s m m c ππ2c o s ))2sin(1()(+= 【例题】 设载波频率fc=100Hz ,调制信号为正弦波信号,频率为20Hz ,设采样频率fs=1000样值/秒。
用MATLAB 产生上述条幅波序列,要求序列持续时间为1秒。
解:由于fs=1000样值/秒,则采样间隔为ts=1/fs=0.001秒,持续时间为1秒,所以序列的的长度为2000。
clear
clc
fs=1000;
ts=1/fs;
t=[0:ts:1];
n=length(t);
x=2*(1+0.6*sin(2*pi*20*t)).*cos(2*pi*100*t);
subplot(2,1,1);
n=1:length(t);
plot(t,x);
X=fft(x);
subplot(2,1,2);
f=1:length(X);
plot(f,abs(X))
二进制相移键控信号 t f c o n mT t g a
t x c m m m π2)()(-=∑
g(t)为单个矩形脉冲,脉宽为Tm ,
⎩⎨⎧-+=p p
a m -1,11概率为概率为,
其中Tm 为二进制符号周期,fc 为载波频率,设抽样频率为fs ,则对应的二进制振幅键控序列表示为:
)2()(
)(n f f con mT f n g a n x s
c m s m m π-=∑ 【例题】 载波频率为10MHz ,二进制符号速率为1Mbit/s 的二进制振幅键控序列,采样频率为fs=40MHz ,要求产生符号序列的长度为10的二进制相移键控序列。
clear
clc
m=10;
fs=40*10^6;
fc=10*10^6;
a1= randsrc(1,m);
for n=1:m
if a1(n)==1
a2(n*40-39:n*40)=1;
else
a2(n*40-39:n*40)=-1; end
end
n=1:length(a2);
x=a2.*cos(2*pi*fc/fs*n);
subplot(2,1,1);
plot(n,x);
X=fft(x);
subplot(2,1,2);
f=1:length(X);
plot(f,abs(X))。