码迷,mamicode.com
首页 > 其他好文 > 详细

【模拟信号】基于matlab调相信号产生+解调【含Matlab源码 987期】

时间:2021-06-19 19:19:36      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:src   变换   子函数   matlab   color   完整   roc   UNC   函数   

一、简介

相位调制,或称调相:载波的相位对其参考相位的偏离值随调制信号的瞬时值成比例变化的调制方式相。
调相和调频有密切的关系。调相时,同时有调频伴随发生;调频时,也同时有调相伴随发生,不过两者的变化规律不同。
实际使用时很少采用调相制,它主要是用来作为得到调频的一种方法。

二、源代码

%主程序
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)的模

三、运行结果

技术图片

四、备注

版本:2014a
完整代码或代写加1564658423

【模拟信号】基于matlab调相信号产生+解调【含Matlab源码 987期】

标签:src   变换   子函数   matlab   color   完整   roc   UNC   函数   

原文地址:https://www.cnblogs.com/homeofmatlab/p/14902714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!