当前位置:   article > 正文

随机信号处理功率谱估计Levinson-Durbin递推算法(C语言)_随机噪声平均功率计算 c代码

随机噪声平均功率计算 c代码

随机信号做谱估计(4)-Levinson-Durbin——C语言

随机信号模型
这里我们用X(n)=s(n)+w(n)来表示所分析的随机信号,其中s(n)是具有两个频率分量的正弦波,可表示为是s(n)=A1sin(2pif1+pi/3)+A2sin(2pif2+pi/4)。w(n)是随机高斯白噪声,它的谱线是一个直线,用它代表信号在传播中所夹杂的噪声不仅可以体现随机过程而且对于功率谱的求解也更为简单。
估计质量的评价
可以用均分误差以及偏差来评价估计质量的好坏,通过画出均分误差和均值随SNR变化的图来观察估计质量。
原理
利用维纳-辛钦定理,信号的自相关函数和功率谱是一对傅里叶变换对。
(具体原理可以查书)
代码
(具体如何实现(1)中有介绍)

#include <stdlib.h>
#include <time.h>
#include <math.h>
#include<cstdio>
#define pi 3.1415916
#define N 128   //样本点数
#define M 100 //信噪比取的个数
#define C 50 //相同信噪比进行次数
#define P 50//阶次
#define W_K_half 60
#define f1 0.1     
#define f2 0.13

void xcorr(double* number, double* sn);
void awgn(double* num);
void freqz(double* ap, double* Hw, double G);
int findPeaks(double* xn, int* address);
void rank(double* mse1, double* mse2, double* expect1, double* expect2, double* snr);
void prin(double* snr, double* mse1, double* mse2, double* approximate1, double* approximate2);
double Levinson_Durbin(double* rm, double ap[P + 1][P + 1], double* km, double* rou);
struct C_complex_double
{
   
	double	real;
	double image;
};  //复数结构体
int main(int argc, char* argv[])
{
   
	double xn[N] = {
    .0 };  //信号
	double Pn[N] = {
    .0 };
	double Pnoise[M] = {
    .0 };  
	double noise[M] = {
    .0 };
	double rm[N] = {
    .0 }; //
	double rk[N] = {
    0.0 };
	int address[50] = {
    0 };   //寻找峰值后记录峰值的位置
	double x2n[N] = {
    .0 };   //加高斯白噪声后的信号  
	double mse_f1[M] = {
    .0 };
	double mse_f2[M] = {
    .0 };  //均分误差
	double num[N] = {
    .0 };  //随机数存储
	double approximate1[M] = {
    .0 };
	double approximate2[M] = {
    .0 };   //估计值
	double Hw[W_K_half] = {
   .0};    //功率谱
	double ap[P + 1][P + 1] = {
   .0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/182717
推荐阅读
  

闽ICP备14008679号