学习通信原理之——频谱/功率谱/功率谱密度(MATLAB演示)

news/2024/12/4 20:51:34/

前言

最近在复习通信原理,每次到了功率谱这一块就感到困惑,每次都要去查,我觉得不能再这样循环下去了,这次一定要对这三个概念理解透彻,于是去网上找了资料去学习。


学习了b站视频:NO.31 十分钟搞定频谱/功率谱/功率谱密度
在这里记录下自己的一些感悟与理解

文章目录

  • 前言
  • 介绍
    • 频谱
    • 功率谱
    • 功率谱密度
  • 由电路中的功率想到信号功率
    • 计算信号能量和能量谱密度
    • 计算信号功率和功率谱密度
  • MATLAB画一个随机信号的频谱
    • 生成随机信号
    • 做傅立叶变换并画图
    • MATLAB画这个随机信号的功率谱
    • MATLAB画这个随机信号的功率谱(另一种方法)
    • MATLAB画这个随机信号的功率谱密度
      • pwelch函数含义
  • 完整代码


介绍

频谱

频谱是指某个信号在频域上的表示,即它在不同频率下的成分及其相对强度。在信号处理中,频谱常用于分析信号的频率内容和频率分布,可以用于音频、视频、无线通信等领域的分析和处理。频谱通常用图形方式表示,其中横轴表示频率,纵轴表示信号在该频率上的强度或功率,可以是线性或对数坐标。

功率谱

功率谱表示单位频带内信号功率随频率的变化情况,单位是W,即它在不同频率下的功率或能量分布情况。与频谱类似,功率谱也是用于分析信号频率内容和频率分布的一种工具,但它考虑的是信号在不同频率下的功率或能量分布,因此可以更直观地描述信号的能量分布情况。通常,功率谱的横坐标是频率,纵坐标是功率或能量密度,可以是线性或对数坐标。功率谱在很多领域都有广泛的应用,比如无线通信、音频信号处理、图像处理等。

功率谱密度

功率谱密度表示单位时间和单位频带内信号能量随频率的分布情况,单位是能量除时间除频带,通常用于描述信号在连续频域上的功率分布情况。与功率谱类似,功率谱密度也是描述信号在不同频率下的功率或能量分布情况,但它考虑的是单位频率范围内的功率或能量分布情况,因此它可以更精确地描述信号的功率分布情况,尤其是对于带宽非常宽的信号而言。功率谱密度通常用于分析连续时间信号或随机信号的频率特性,比如噪声、振动、电磁干扰等。功率谱密度的单位通常是功率或能量密度除以频率单位,例如瓦特/赫兹(W/Hz)或焦耳/赫兹(J/Hz)。


由电路中的功率想到信号功率

电路中的功率:P=V2R=I2R电路中的功率:P=\frac{V^2}{R}=I^2R 电路中的功率:P=RV2=I2R

R=1ΩR=1\Omega R=

电路中的功率:P=V2=I2电路中的功率:P=V^2=I^2 电路中的功率:P=V2=I2

如果将V 换成信号的序列s(t),我们能发现,我们所说的功率谱公式,就是来源上面的公式。


计算信号能量和能量谱密度

那么这个信号自产生到结束的总能量就是
E=∫−∞+∞s(t)2dt=∫−∞+∞∣S(f)∣2dfE=\int_{-\infty }^{+\infty } s(t) ^2 dt=\int_{-\infty }^{+\infty }\left | S (f) \right |^2 df E=+s(t)2dt=+S(f)2df
E存在,即称为能量信号;
能量谱密度:

G(f)=∣s(f)∣2,J/HZG(f)=\left | s(f) \right |^2,J/HZ G(f)=s(f)2,J/HZ

计算信号功率和功率谱密度

因为功率信号的能量是无限的,所以我们只取-T/2~T/2,来计算其功率

ET=∫−T2T2sT(t)2dt=∫−∞∞∣ST(f)2∣dfE_{T}=\int_{-\frac{T}{2} }^{\frac{T}{2} } s_{T}(t)^2 dt=\int_{-\infty }^{\infty }\left | S_{T}(f)^2 \right | df ET=2T2TsT(t)2dt=ST(f)2df

P(f)=lim⁡T→∞1T∣S(f)∣2P(f)=\lim_{T \to \infty} \frac{1}{T}\left |S(f) \right |^2 P(f)=TlimT1S(f)2
P(f)就是功率谱密度
功率信号的功率P就是:
P=lim⁡T→∞∫∣S(f)∣2df=∫−∞∞P(f)dfP=\lim_{T \to \infty} \int \left |S(f) \right |^2df=\int_{-\infty }^{\infty } P(f) df P=TlimS(f)2df=P(f)df
P存在,即称为功率信号
由上面的式子可知:

时域信号傅立叶变换模平方然后除以时间长度(来自能量谱密度)。 根据帕塞瓦尔定理,信号傅立叶变换模平方被定义为能量谱,能量谱密度在时间上平均就得到了功率谱。功率谱密度P(f)在频率轴上积分,T趋向无穷大,就是信号的功率P

总结:

能量有限、功率为零的信号为能量信号。

能量无限、功率有限的信号为功率信号。

所有周期信号都是功率信号;所有有限数量的脉冲信号都是能量信号。


MATLAB画一个随机信号的频谱

生成随机信号

%生成随机信号
noiseLevel=2;
signal = rand(80000,1);
noise = randn(80000,1) * noiseLevel;
signal = signal + noise;

在这里插入图片描述

做傅立叶变换并画图

X = signal;
Fs = 2e3;
L = length(X);
Y = fft(X);%傅立叶变换
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1)=2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
%频谱
%subplot(231);
plot(f,P1);
ylim([0 0.05]);
title('频谱');
xlabel('f(Hz)');
ylabel('|P1(f)|(单位:mV)');

在这里插入图片描述
因为没有进行任何的滤波等操作,所以里面的直流分量、噪声等影响因素都存在,这就是一个很完全的原始信号。

MATLAB画这个随机信号的功率谱

功率实际上就是能量的平方。
为了便于观察功率谱的变化,我们对横坐标的功率化成了dBm
dBm=10log10P1mWdBm=10log_{10}\frac{P}{1mW} dBm=10log101mWP

%功率谱
subplot(232);
plot(f,10*log10(P1.^2));%将W转为dBm
title('功率谱');
xlabel('f(Hz)');
ylabel('|P1(f)|^2(单位:dBm)');

在这里插入图片描述

MATLAB画这个随机信号的功率谱(另一种方法)

%第二种方法求功率谱
pwelch(signal,[],[],[],Fs,'power');
title('Welch功率谱');

在这里插入图片描述

MATLAB画这个随机信号的功率谱密度

pwelch(signal,[],[],[],Fs);

在这里插入图片描述
功率谱密度纵轴的单位变成了(db/Hz),表示每一个Hz有多少dB
跟功率谱图像做对比,可以观察到,幅度较大的频率分量被保留了下来。


pwelch函数含义

pwelch是Matlab中用于计算功率谱密度的函数。它的基本语法是:

[Pxx,F] = pwelch(x,window,noverlap,nfft,fs)

其中,x是一个向量或矩阵,表示要计算功率谱密度的信号,window是窗函数,noverlap是窗函数之间的重叠部分,nfft是FFT的点数,fs是采样率。函数将返回一个功率谱密度估计值向量Pxx和一个对应的频率向量F

完整代码

clear
close all
clc%生成随机信号
noiseLevel=2;
signal = rand(80000,1);
noise = randn(80000,1) * noiseLevel;
signal = signal + noise;X = signal;
Fs = 2e3;
L = length(X);
Y = fft(X);%傅立叶变换
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1)=2*P1(2:end-1);
f = Fs*(0:(L/2))/L;
%频谱
subplot(221);
plot(f,P1);
ylim([0 0.05]);
title('频谱');
xlabel('f(Hz)');
ylabel('|P1(f)|(单位:mV)');
%功率谱
subplot(222);
plot(f,10*log10(P1.^2));%将W转为dBm
title('功率谱');
xlabel('f(Hz)');
ylabel('|P1(f)|^2(单位:dBm)');
%第二种方法求功率谱
subplot(223);
pwelch(signal,[],[],[],Fs,'power');
title('Welch功率谱');
%功率谱密度
subplot(224);
pwelch(signal,[],[],[],Fs);

在这里插入图片描述


http://www.ppmy.cn/news/37790.html

相关文章

java校园行为分析预警管理系统

目 录 摘 要 II ABSTRACT III 第一章 绪论 1 1.1研究背景 1 1.2选题目的 1 1.3本文研究内容 2 第二章 开发技术介绍 3 2.1开发工具介绍 3 2.2 JAVA技术介绍 3 2.3 MYSQL数据库介绍 4 第三章 系统需求分析 6 3.1可行性分析 6 3.1.1技术…

Python 自动化指南(繁琐工作自动化)第二版:二、流程控制

原文:https://automatetheboringstuff.com/2e/chapter2/ 所以,你知道单个指令的基本原理,程序就是一系列指令。但是编程的真正优势不仅仅是像周末跑腿一样一个接一个地运行指令。根据表达式的求值方式,程序可以决定跳过指令&#…

第18章_主从复制

第18章_主从复制 🏠个人主页:shark-Gao 🧑个人简介:大家好,我是shark-Gao,一个想要与大家共同进步的男人😉😉 🎉目前状况:23届毕业生,目前在某…

代理模式:JDK动态代理和静态代理回顾

背景:Spring主要有两大思想:IoC、AOP。对于IoC依赖注入不多说了,对于Spring的核心AOP来说,我们需要了解其底层的实现原理:java的动态代理机制。 本篇随笔就是对java的动态机制进行一个回顾。 代理模式的理解 类型&…

AtCoder 294F 二分套二分

题意: 两个人分别有nnn,mmm杯糖水,第一个人的第iii杯有a[i]a[i]a[i]克糖,b[i]b[i]b[i]克水,第二个人的第iii杯有c[i]c[i]c[i]克糖,d[i]d[i]d[i]克水。现在从两个人手中各取一杯糖水混合,有nmnm…

三方对接「心得」与「体会」

和三方的关系要处好; 01如果你看到这个话题,并不知道是什么意思,那么祝贺你,安安静静的当个小码农也挺好; 不过我敢说,随着职业生涯的慢慢发展,大家都得碰到,到时候就细细体会吧&am…

入职时,公司要求自己带电脑,每月给100元补贴,如果不接受就不能入职!

为了节约成本,公司能做出什么事?一位网友遇到了这样的事:入职时,公司要求自己带电脑,每个月给100元补贴,如果不接受就得放弃入职,这样的公司有没有坑?有人问:连基本的公司…

java项目开发之接口优化方案

接口优化方案 接口优化可以从如下方案入手 1、批量操作、异步、并行思想、空间换时间、池化思想,sql优化等 1. 批量思想:批量操作数据库 优化前: //for循环单笔入库 for(TransDetail detail:transDetailList){insert(detail); }优化后&a…