matlab实现MSK调制解调
文章目录
- 一、要求
- 二、设计
- 三、代码
- 四、结果
- 五、结论
一、要求
画出MSK信号产生的信息、I路、Q路信号对比图以及接收端解调的信息恢复的对比图。
二、设计
1.MSK调制
2.MSK解调
三、代码
clear all;clc;
N=20;
T=1;
fc=10;
Fs=100;
bitstream=randi([0,1],1,N);
bitstream1=2*bitstream-1;
b0=1;
for i=1:Nencode_output(i)=b0*bitstream1(i);b0=encode_output(i);
end
I=[];Q=[];
for i=1:Nif mod(i,2)~=0I=[I,encode_output(i)];elseQ=[Q,encode_output(i)];end
end
bit_data=[];
for i=1:Nbit_data=[bit_data,encode_output(i)*ones(1,T*Fs)];
endI_data=[];Q_data=[];base_wave=-T:1/Fs:T-1/Fs;
for i=1:N/2I_data=[I_data,I(i)*cos(pi*base_wave/(2*T))];Q_data=[Q_data,Q(i)*cos(pi*base_wave/(2*T))];
end
% Q delay
number_delay=length(base_wave)/2;
Q_data1=[zeros(1,number_delay),Q_data(1:length(Q_data)-number_delay)];
% plot
figure();
t=0:1/Fs:N*T-1/Fs;
subplot(3,1,1)
plot(t,bit_data);legend('Bitstream')
subplot(3,1,2)
plot(t,I_data);legend('I Bitstream')
subplot(3,1,3)
plot(t,Q_data1);legend('Q Bitstream')
% carrier signal
bit_t=0:1/Fs:N*T-1/Fs;
I_carrier=cos(2*pi*fc*bit_t);
Q_carrier=cos(2*pi*fc*bit_t+pi/2);
% transmit signal
MSK_signal=I_data.*I_carrier+Q_data1.*Q_carrier;snr=1;
MSK_receive=awgn(MSK_signal,snr);
% demodulate
I_output=MSK_receive.*I_carrier;Hd=myfilter;
I_filter_ouput=filter(Hd,I_output);
Q_output=MSK_receive.*Q_carrier;
Q_filter_ouput=filter(Hd,Q_output);for i=1:N/2if I_filter_ouput((2*i-1)*number_delay)>0I_recover(i)=1;elseI_recover(i)=-1;endif Q_filter_ouput(2*i*number_delay)>0Q_recover(i)=1;elseQ_recover(i)=-1;end
end
bit_recover=[];
for i=1:Nif mod(i,2)~=0bit_recover=[bit_recover,I_recover((i-1)/2+1)];elsebit_recover=[bit_recover,Q_recover(i/2)];end
end% decode
for i=1:Nif i==1bit_recover1(i)=bit_recover(i);elsebit_recover1(i)=bit_recover(i)*bit_recover(i-1);end
end
recover_data=[];
for i=1:Nrecover_data=[recover_data,bit_recover1(i)*ones(1,T*Fs)];
end% plot
figure();
t=0:1/Fs:N*T-1/Fs;
bit_stream=[];
for i=1:Nbit_stream=[bit_stream,bitstream1(i)*ones(1,T*Fs)];
end
subplot(2,1,2)
plot(t,bit_stream);legend('original Bitstream')
subplot(2,1,1)
plot(t,recover_data);legend('recover Bitstream')
四、结果
myfilter是通过matlab命令行调用filter designer设计生成的函数
五、结论
在MSK的调制与解调中,产生和接收到的信号能够进行还原,即调制产生的I、Q以及MSK信号在经过解调之后能够还原出原来的信号。尽管过滤器设计不同,但是仍然不影响最后的结果。
matlab实现MSK调制解调相关推荐
- msk 频偏_基于MSP430的MSK调制解调实现.doc
PAGE 哈尔滨工程大学本科生毕业论文 基于MSP430的MSK调制解调实现 院 (系):信通学院 专 业:电子信息工程 学 号学 生 姓 名:杜兆龙 指 导 教 师:罗天放 副教授 2008年6月 ...
- MSK调制解调和误码率
课程设计作业 MSK调制解调 clear all; close all; %% %系统参数设计 T_start=0;%开始时间 T_stop=10;%截止时间 T=T_stop-T_start;%仿真 ...
- 脉位调制解调 matlab,基于matlab的am调制解调
基于matlab的am调制解调 基于 Matlab 的 AM 调制解调一.AM 的调制原理AM 是指对信号进行幅度调制 [2].一般做法是先在原信号上叠加一个直流信号,以保证信号 , 然后乘上一个高频 ...
- am解调matlab程序,基于Matlab的AM调制解调.doc
学号20100602050101 密级 公 开 本科毕业论文 基于Matlab的AM调制解调 及抗噪性能分析 学 院 名 称: 专 业 名 称: 学 生 姓 名: 指 导 教 师: 讲师 二〇一四年五 ...
- MATLAB BPSK通信系统调制解调仿真原理及代码(二)
此仿真是瑞丽衰落信道与高斯信道的仿真对比,高斯信道的原理及仿真代码前文已有讲述. 高斯信道下的原理及代码请见 MATLAB BPSK通信系统调制解调仿真原理及代码(一)_惜洛-Jankin的博客-CS ...
- matlab实现ofdm调制解调,基于MATLAB的OFDM调制解调仿真
基于MATLAB的OFDM调制解调仿真 题目:基于 MATLAB的 OFDM调制解调仿真2009年 6 月 13 日目 录摘要 .IIAbstract IV第 1章 正交频分复用的来源 - 1 -1. ...
- msk误码率 matlab仿真,GMSK调制解调的MATLAB仿真与误码率分析.pdf
GMSK调制解调的MATLAB仿真与误码率分析 67 第34卷 第2期 <新疆师范大学学报>(自然科学版) Vol.34,No.2 2015年6月 Journal of Xinjiang ...
- m基于FPGA的MSK调制解调系统verilog开发,并带FPGA误码检测模块和matlab仿真程序
目录 1.算法描述 2.仿真效果预览 3.Verilog核心程序 4.完整FPGA 1.算法描述 整个模型的基本框图为 软件无线电是现代通信技术的重要研究领域和发展方向,目前发展迅速.快速发展的软件无 ...
- BPSK信号matlab,BPSK信号调制解调与MATLAB仿真.docx
在科技迅猛发展的今天,大量的信息交流离不开当今社会生活的方方面面,所以数字通信系统占据了重要地位,信号的调制与解调,就在通信中起着非常重要的作用,并且在信号传输过程中使信号的安全性和传输特性大大提高, ...
最新文章
- centos8.2 hyper第一代 第二代_欧洲第一代法王以工程师身份加入拳头游戏,网友齐呼:是真的牛...
- Array.forEach短路就像调用break
- 算法笔记_156:算法提高 6-17复数四则运算(Java)
- Beta版冲刺Day1
- -bash: setup: command not found
- python 文本处理2
- [android] AndroidManifest.xml - 【 manifest - permission】
- 恰当地利用中间结果集
- [转]Linux之ACL权限
- VS Code 调试 Angular 和 TypeScript 的配置
- 在线工具大全 - 推荐
- cocos creator fgui 按钮事件
- AutoCAD批量提取坐标点的三种方法
- 计蒜客--农场看守(简单的欧拉回路)
- usbip--局域网内共享的USB设备
- 中医卫统直报、重点专科、绩效考核病案首页字段汇总-标出差异
- 游戏建模师具体干什么!30岁后进入行业算不算晚?
- 小白从零开始:STM32双闭环(速度环、位置环)电机控制(硬件篇)
- 惟缓存DNS服务器与备用DNS服务器配置
- 数学常数e的含义(阮一峰)