使用C++ Matlab中的lp2lp函数教程详解
时间:2023-07-07 19:09:14来源:脚本之家


(资料图片)

目录
1. matlab的lp2lp函数的作用2. matlab的lp2lp函数的使用方法3. C++ 实现3.1 complex.h 文件3.2 lp2lp.h 文件4. 测试结果4.1 测试文件4.2 测试3阶的情况4.3 测试9阶的情况

1. matlab的lp2lp函数的作用

去归一化 H(s) 的分母

2. matlab的lp2lp函数的使用方法

[z, p, k]=buttap(3);
disp("零点:"+z);
disp("极点:"+p);
disp("增益:"+k);
[Bap,Aap]=zp2tf(z,p,k);% 由零极点和增益确定归一化Han(s)系数
disp("Bap="+Bap);
disp("Aap="+Aap);
[Bbs,Abs]=lp2lp(Bap,Aap,86.178823974858318);% 低通到低通 计算去归一化Ha(s),最后一个参数就是去归一化的 截止频率
disp("Bbs="+Bbs);
disp("Abs="+Abs);

3. C++ 实现

3.1 complex.h 文件

#pragma once
#include 
typedef struct Complex
{
	double real;// 实数
	double img;// 虚数
	Complex()
	{
		real = 0.0;
		img = 0.0;
	}
	Complex(double r, double i)
	{
		real = r;
		img = i;
	}
}Complex;
/*复数乘法*/
int complex_mul(Complex* input_1, Complex* input_2, Complex* output)
{
	if (input_1 == NULL || input_2 == NULL || output == NULL)
	{
		std::cout << "complex_mul error!" << std::endl;
		return -1;
	}
	output->real = input_1->real * input_2->real - input_1->img * input_2->img;
	output->img = input_1->real * input_2->img + input_1->img * input_2->real;
	return 0;
}

3.2 lp2lp.h 文件

实现方法很简单,将 H(s) 的分母的系数乘以 pow(wc, 这一项的指数) 即可

#pragma once
#include 
#include 
#include 
#include "complex.h"
using namespace std;
vector> lp2lp(vector> tf, double wc)
{
	vector> result;
	if (tf.size() <= 0 || wc <= 0.001)
	{
		return result;
	}
	result.resize(tf.size());
	for (int i = 0; i < tf.size(); i++)
	{
		double coeff = pow(wc, tf[i].second);
		Complex* c = (Complex*)malloc(sizeof(Complex));
		c->real = coeff * tf[i].first->real;
		c->img = coeff * tf[i].first->img;
		pair p(c, tf[i].second);
		result[i] = p;
	}
	return result;
}

4. 测试结果

4.1 测试文件

#include 
#include 
#include 
#include 
#include "buttap.h"
#include "zp2tf.h"
#include "lp2lp.h"
using namespace std;
#define pi ((double)3.141592653589793)
int main()
{
	vector poles = buttap(3);
	vector> tf = zp2tf(poles);
	// 去归一化后的 H(s) 的分母
	vector> ap = lp2lp(tf, 86.178823974858318);
	return 0;
}

4.2 测试3阶的情况

4.3 测试9阶的情况

可以看出二者结果一样,大家可以自行验证

到此这篇关于使用C++ Matlab中的lp2lp函数教程详解的文章就介绍到这了,更多相关C++ Matlab中的lp2lp函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

标签:

生活指南
  • 华西股份7月7日盘中涨幅达5%

    以下是华西股份在北京时间7月7日13:49分盘口异动快照:7月7日,华西股

  • 追光的日子任敏自杀 追光的日子任敏发疯文学 基本情况讲解

    大家好,今日关于【追光的日子任敏自杀追光的日子任敏发疯文学】迅速上

  • 信阳高新区绿化提升环境卫生工作部署会召开

    7月6日下午,信阳高新区党工委书记、管委会主任徐明春主持召开高新区绿

  • 京东金条是正规借款吗?京东金条的利息是怎么样的呢?_全球微速讯

    京东金条是正规借款吗?正规。京东金条是由京东金融推出的一款线上借

  • 全球观焦点:st天成是什么公司?st天成和金正哪个好?

    st天成是什么公司?st天成是贵州长征天成控股股份有限公司1997年上市

  • 上海怎么开通电子驾照?上海可以用电子驾驶证上路吗?

    上海怎么开通电子驾照?在上海开电子驾照:打开微信,搜索对应的微信

  • 资本收益率分析能达到哪些目的?资本收益率的计算公式是什么?

    资本收益率分析能达到哪些目的?第一,检查、判定投资效益。资本收益

  • 【天天快播报】什么是恐慌盘?熊市末期见底特征主要分为几点?

    什么是恐慌盘?获利盘,就是赚了钱的那部分筹码。套牢盘,就是亏得

  • 特色中医 医养相济作为大

    兰州市中医医院治未病中心主任敬胜伟为患者号脉和盛堂制药品质控制员正

  • 全球新资讯:中国太保寿险总经理蔡强:寿险产品利率切换后 分红险能够成为公司未来的创新主打产品

    7月4日,中国太保2023年度资本市场开放日在太保家园杭州国际颐养社区举

  • 热点在线丨血钻野燕麦片的功效与作用_血钻野燕麦

    1、用过,感觉不怎么样,没有什么起色 还不如(罗国强回忆录)好,而这个

  • Win7管理员权限在哪里设置? win7怎么进入管理员模式?

    Win7管理员权限在哪里设置?1、右键计算机图标,选择管理。2、打开界

  • 电脑重装系统大概收费多少比较合理?重装系统对电脑有影响吗?

    电脑重装系统大概收费多少比较合理?电脑重装系统价格在30到50元左右

  • 天天要闻:点到(关于点到的基本详情介绍)

    点到,到的基本详情介绍很多人还不知道,那么现在让我们一起来看看吧!

  • 信用卡逾期了目前无力偿还该如何处理?信用卡60万无力偿还会判多少年?|天天快消息

    当今时代信用卡消费盛行,给许多人提供了提前享受的机会。但在享受

  • 绿色通道是什么意思?绿色通道的绿色含义是什么?

    绿色通道是什么意思?绿色通道一般指简单、安全、快捷的方式和渠道,

  • 民生
    • 446和635,揭开山东省国家中医药综合改革示范区建设密码

    • 第三条道路(1)

    • 世界首款疟疾疫苗投入广泛使用:非洲国家首批获分配 挽救数十万生命

    • 桃子产地在哪里?桃子的形态特征是什么?|世界短讯