脉冲幅度调制信号的功率谱计算

       本篇文章是博主在通信等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在通信领域笔记

       通信领域笔记(1)---《脉冲幅度调制信号的功率谱计算》

脉冲幅度调制信号的功率谱计算

目录

1、背景分析

2、PAM理论推导

3、仿真过程设计

4、仿真及结果分析

5、实验小结 

6、Matlab程序代码


1、背景分析


2、PAM理论推导


3、仿真过程设计


4、仿真及结果分析

 

 


5、小结 


6、Matlab程序代码

close all
clear
% 定义调制参数
Fs = 4000; % 采样率
fc = 100; % 载波频率
baud = 20; % 符号速率
t = 0:1/Fs:1; % 时间向量
N = length(t); % 采样点数% 生成随机二进制序列
bits = randi([0 1],1,(N-1)/baud);% 将二进制序列转换为符号序列
symbols = 2*bits-1;
% symbols = bits;
% 生成PAM调制信号
pam_signal = zeros(1,N);
for i=1:length(bits)pam_signal((i-1)*baud+1:i*baud) = symbols(i);
end% 生成载波信号
carrier = abs(sin(2*pi*fc*t));% 将PAM调制信号与载波信号相乘
modulated_signal = pam_signal.*carrier;% window=boxcar(length(pam_signal));
nfft=1024;
% [Pxx,f]=periodogram(pam_signal,window,nfft,Fs); %直接法
% f(length(f)+1,:)=-f;
% Pxx(-length(Pxx):0)=Pxx;
% figure
% plot(f,10*log10(Pxx));window=boxcar(100); %矩形窗
window1=hamming(100); %海明窗
window2=blackman(100); %blackman窗
noverlap=20; %数据无重叠
[Pxx,f]=pwelch(pam_signal,window1,noverlap,nfft,Fs,'centered','power');
plot_Pxx=10*log10(Pxx);[Pxx1,f1]=pwelch(modulated_signal,window1,noverlap,nfft,Fs,'centered','power');
plot_Pxx1=10*log10(Pxx1);%绘制PAM调制信号和调制后信号的时域波形
figure
subplot(2,2,1);
plot(t,pam_signal);
title('PAM调制信号');
xlabel('时间(秒)');
ylabel('幅值');
subplot(2,2,3);
plot(t,modulated_signal);
title('调制后信号');
xlabel('时间(秒)');
ylabel('幅值');subplot(2,2,2);
plot(f,plot_Pxx);
xlabel('Frequency(Hz)');
ylabel('PSD(dB/Hz)')subplot(2,2,4);
plot(f1,plot_Pxx1);
xlabel('Frequency(Hz)');
ylabel('PSD(dB/Hz)')%通过fft获得功率谱
G_s = abs(fft(pam_signal)).^2/Fs;%矩形脉冲
plot_G_s=10*log10(G_s);
%这三步的目的是将功率谱中心搬到0频点,画双边谱
x = plot_G_s(Fs/2:Fs);
plot_G_s(Fs/2:Fs)=plot_G_s(1:Fs/2+1);
plot_G_s(1:Fs/2+1)=x;G_s2 = abs(fft(modulated_signal)).^2/Fs;%半波正弦
plot_G_s2=10*log10(G_s2);
x2 = plot_G_s2(Fs/2:Fs);
plot_G_s2(Fs/2:Fs)=plot_G_s2(1:Fs/2+1);
plot_G_s2(1:Fs/2+1)=x2;F = -Fs/2:0.1:Fs/2;
G_s3 = 200./(pi.*F).^2.*sin(pi.*F./200).^2;
plot_G_s3=10*log10(G_s3);
G_s4 = 200/(4*pi^2).*cos(pi.*F./200).^2./(1/4-(F./200).^2).^2;
plot_G_s4=10*log10(G_s4);figure
subplot(2,1,1);
plot(-Fs/2:1:Fs/2,plot_G_s);
title('pam signal');
xlabel('Frequency(Hz)');
ylabel('PSD(dB/Hz)')
subplot(2,1,2);
plot(-Fs/2:1:Fs/2,plot_G_s2);
title('modulated signal');
xlabel('Frequency(Hz)');
ylabel('PSD(dB/Hz)')
figure
subplot(2,1,1);
plot(F,plot_G_s3)
title('pam signal');
xlabel('Frequency(Hz)');
ylabel('PSD(dB/Hz)');
subplot(2,1,2);
plot(F,plot_G_s4)
title('modulated signal');
xlabel('Frequency(Hz)');
ylabel('PSD(dB/Hz)');
% c = abs(fft(carrier));
% a = abs(fft(modulated_signal));
% b = abs(fft(pam_signal));
% figure
% plot(0:1:Fs,c);
% figure
% plot(0:1:Fs,b);
% figure
% plot(0:1:Fs,a);

     文章若有不当和不正确之处,还望理解与指出。由于部分文字、图片等来源于互联网,无法核实真实出处,如涉及相关争议,请联系博主删除。如有错误、疑问和侵权,欢迎评论留言联系作者,或者关注VX公众号:Rain21321,联系作者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/211889.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

目录 本文主要介绍了PythonRequessPyTestExcelAllure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 Unittest是Python标准库中自带的单元测试…

nginx 模块相关配置及结构理解

文章目录 模块配置结构模块配置指令先看一下 ngx_command_t 结构一个模块配置的demo简单模块配置的案例演示 模块上下文结构模块的定义 模块配置结构 Nginx中每个模块都会提供一些指令,以便于用户通过配置去控制该模块的行为。 Nginx的配置信息分成了几个作用域(sc…

【Vue】核心特性(响应式)

响应式&#xff1a; 数据变化&#xff0c;视图自动更新 接下来使用一个例子来体现一下什么是响应式 案例一&#xff1a; 访问数据&#xff0c;视图自动更新 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

【C/PTA】函数专项练习(四)

本文结合PTA专项练习带领读者掌握函数&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 目录 6-1 计算A[n]1/(1 A[n-1])6-2 递归实现顺序输出整数6-3 自然数的位数(递归版)6-4 分治法求解金块问题6-5 汉诺塔6-6 重复显示字符(递归版)…

【git】使用ssh

前言 git之前一直使用https&#xff0c;因为很方便随时随地都可以用。最近吧代码托管到GitHub&#xff0c;使用https就使用不了。后面听同事说GitHub使用ssh是没问题的&#xff0c;就想着尝试一下。 git ssh配置 设置用户名和邮箱 git config --global use.name usernamegit…

性能测试的指南:测试类型、性能测试步骤、最佳实践等!

近期公司为了节省成本搞了一波机房迁移&#xff0c;整合了一些南美部署架构。有一些上google云和有些下阿里云等大的调整。 在做机房迁移项目当中就需要思考如何进行性能测试&#xff0c;这种大的机房迁移SRE&#xff08;运维&#xff09;会针对组件会做一些单组件的性能测试&a…

【LeetCode刷题-回溯】-- 47.全排列II

47.全排列II 主要需要解决全排列不重复的问题&#xff0c;设定一个规则&#xff0c;保证在填第i个数的时候重复数字只会被填入一次即可&#xff0c;而在本题中&#xff0c;我们选择对原数组排序&#xff0c;保证相同的数字都相邻&#xff0c;然后每次填入的数一定是这个数所在重…

基于深度学习的文本分类

通过构建更复杂的深度学习模型可以提高分类的准确性&#xff0c;即分别基于TextCNN、TextRNN和TextRCNN三种算法实现中文文本分类。 项目地址&#xff1a;zz-zik/NLP-Application-and-Practice: 本项目将《自然语言处理与应用实战》原书中代码进行了实现&#xff0c;并在此基础…

docker启动容器失败,然后查看日志,docker logs查看容器出现报错:

docker 启动容器失败&#xff0c;然后docker logs 查看容器出现报错&#xff1a; error from daemon in stream: Error grabbing logs: invalid character l after object key:value pair在网上看到的 解决方案&#xff1a; 找到你日志文件目录&#xff1a; docker inspect …

盘点55个Python书籍Python爱好者不容错过

盘点55个Python书籍Python爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1zJ0YGPBugDxCAAvCJbPXvA?pwd8888 提取码&#xff1a;8888 书籍名称&#xff1a; Flask We…

2016年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2016 级考研管理类联考数学真题一、问题求解&#xff08;本大题共 15 小题&#xff0c;每小题 3 分&#xff0c;共 45 分&#xff09;下列每题给出 5 个选项中&#xff0c;只有一个是符合要求的&#xff0c;请在答题卡上将所选择的字母涂黑。真题&#xff08;2016-01&…

VueRouter

路由介绍 1.思考 单页面应用程序&#xff0c;之所以开发效率高&#xff0c;性能好&#xff0c;用户体验好 最大的原因就是&#xff1a;页面按需更新 比如当点击【发现音乐】和【关注】时&#xff0c;只是更新下面部分内容&#xff0c;对于头部是不更新的 要按需更新&#…