信号处理调相信号产生+解调matlab源码
Posted MatlabQQ1575304183
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号处理调相信号产生+解调matlab源码相关的知识,希望对你有一定的参考价值。
一、简介
相位调制,或称调相:载波的相位对其参考相位的偏离值随调制信号的瞬时值成比例变化的调制方式相。
调相和调频有密切的关系。调相时,同时有调频伴随发生;调频时,也同时有调相伴随发生,不过两者的变化规律不同。
实际使用时很少采用调相制,它主要是用来作为得到调频的一种方法。
二、源代码
%主程序
t0=1; %信号的持续时间,用来定义时间向量
ts=0.001; %抽样间隔
fs=1/ts; %抽样频率
fc=100; %载波频率,fc可以任意改变
t=[-t0/2:ts:t0/2]; %时间向量
kf=100; %偏差常数
df=0.25;
%所需的频率分辨率,用在求傅里叶变换时,它表示FFT的最小频率间隔
m=cos(pi*10*t); %调制信号,m(t)可以任意更改
int_m(1)=0; %求信号m(t)的积分
for i=1:length(t)-1
int_m(i+1)=int_m(i)+m(i)*ts;
end
[M,m,df1]=fftseq(m,ts,df); %对调制信号m(t)求傅里叶变换
M=M/fs; %缩放,便于在频谱图上整体观察
f=[0:df1:df1*(length(m)-1)]-fs/2; %时间向量对应的频率向量
u=cos(2*pi*fc*t+2*pi*kf*int_m); %调制后的信号
[U,u,df1]=fftseq(u,ts,df); %对调制后的信号u求傅里叶变换
U=U/fs; %缩放
%通过调用子程序env_phas和loweq来实现解调功能
[v,phase]=env_phas(u,ts,fc); %解调,求出u的相位
phi=unwrap(phase); %校正相位角,使相位在整体上连续,便于后面对该相位角求导dem=(1/(2*pi*kf))*(diff(phi)*fs); %对校正后的相位求导 %再经一些线性变换来恢复原调制信号 %乘以fs是为了恢复原信号,因为前面使用了缩放
subplot(2,2,1) %子图形式显示结果
%求信号相角的子函数,这是调频、调相都要用到的方法
function [v,phi]=env_phas(x,ts,f0)
if nargout==2 %nargout为输出变数的个数
z=loweq(x,ts,f0); %产生调制信号的正交分量
phi=angle(z); %angle是对一个复数求相角的函数
end
v=abs(hilbert(x)); %abs用来求复数hilbert(x)的模
四、备注
以上是关于信号处理调相信号产生+解调matlab源码的主要内容,如果未能解决你的问题,请参考以下文章
模拟信号基于matlab抑制载波双边带调幅信号产生+解调含Matlab源码 985期
信号处理基于二进制数字振幅调制与解调(2APK)matlab源码
数字信号调制基于matlab GUI AM+FM+DSB+SSB调制解调含Matlab源码 1212期
数字信号调制基于matlab GUI ASK+OOK++BPSK+8PSK+QPSK+AM调制解调含Matlab源码 1368期
数字信号调制基于matlab GUI ASK+OOK+BPSK+8PSK+QPSK+AM调制解调含Matlab源码 1368期