iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >使用C++Matlab中的lp2lp函数教程详解
  • 301
分享到

使用C++Matlab中的lp2lp函数教程详解

C++Matlab中的lp2lp函数C++Matlablp2lp函数 2023-05-17 08:05:00 301人浏览 薄情痞子
摘要

目录1. matlab的lp2lp函数的作用2. matlab的lp2lp函数的使用方法3. c++ 实现3.1 complex.h 文件3.2 lp2lp.h 文件4. 测试结果4

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 <iOStream>
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 <iostream>
#include <vector>
#include <alGorithm>
#include "complex.h"
using namespace std;
vector<pair<Complex*, int>> lp2lp(vector<pair<Complex*, int>> tf, double wc)
{
	vector<pair<Complex*, int>> 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<Complex*, int> p(c, tf[i].second);
		result[i] = p;
	}
	return result;
}

4. 测试结果

4.1 测试文件

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

4.2 测试3阶的情况

4.3 测试9阶的情况

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

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

--结束END--

本文标题: 使用C++Matlab中的lp2lp函数教程详解

本文链接: https://www.lsjlt.com/news/210861.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用C++Matlab中的lp2lp函数教程详解
    目录1. matlab的lp2lp函数的作用2. matlab的lp2lp函数的使用方法3. C++ 实现3.1 complex.h 文件3.2 lp2lp.h 文件4. 测试结果4...
    99+
    2023-05-17
    C++ Matlab中的lp2lp函数 C++ Matlab lp2lp函数
  • 详解Vue3中setup函数的使用教程
    目录vue2 和 vue3 开发的区别使用 setup 原因setup 用法setup 可以接受哪些参数setup 详解setup 函数自动执行setup 函数定义变量setup 创...
    99+
    2024-04-02
  • matlab中的unique函数详解
    在MATLAB中,unique函数用于查找数组中的唯一值,并返回它们的排序版本。unique函数的语法如下:```matlab[C,...
    99+
    2023-09-12
    matlab
  • C#中类的使用教程详解
    目录实例化类成员访问赋值方法方法调用方法重载在对类访问使用时,常用到的有访问类的成员、方法。 实例化 在对类进行访问时,需要将类进行实例化。并产生一个对象。可以使用关键字new来实现...
    99+
    2024-04-02
  • C/C++中extern函数使用详解
    目录一、定义和声明的区别二、extern用法2.1 extern 函数2.2 extern 变量2.3 在C++文件中调用C方式编译的函数三、通俗讲解extern一、定义和声明的区别...
    99+
    2024-04-02
  • Python中eval()函数的详细使用教程
    目录eval()函数语法实例实例1实例2实例3附:使用例子总结eval()函数 eval() 函数用来执行一个字符串表达式,并返回表达式的值。 语法 eval(expression[...
    99+
    2024-04-02
  • C/C++中时间库函数的使用详解
    目录C/C++ 中时间的概念常用的时间库函数time()asctime()gmtime()ctime()localtime()mktime()difftime()C/C++ 获取当前...
    99+
    2022-11-13
    C/C++时间库函数 C/C++时间函数 C++ 时间函数
  • Python常用内置函数的使用教程详解
    目录导言一、abs()二、aiter()函数三、all()函数四、anext()五、any()函数六、ascii()函数导言 Python官方文档对于内置函数的介绍较为简略...
    99+
    2023-05-14
    Python常用内置函数使用 Python常用内置函数 Python 内置函数
  • C++成员函数中const的使用详解
    目录修饰入参值传递址传递const修饰入参修饰返回值修饰函数总结const 在C++中是一个很重要的关键字,其不光可以用来修饰变量,还可以放在函数定义中,这里整理了其在函数中的三个用...
    99+
    2024-04-02
  • C++ push_back()函数使用详解
    最近在学习Opencv,用C++写程序,做了一个虚拟画笔的项目,即通过摄像头采集视频图像信息,识别视频中的画笔,并画笔在空中的划痕显示在视频图像上。在进行到划痕显示的,由于视频是实时...
    99+
    2024-04-02
  • C++函数模板的使用详解
    函数模板可以适用泛型来定义函数,其中泛型可以是(int, double, float)等替换。在函数重载过程中,通过将类型作为参数传递给模板,可使编译器自动产生该类型的函数。 工作原...
    99+
    2024-04-02
  • 小程序开发之云函数的使用教程详解
    目录1、云函数1.1 云函数API和云函数创建2、云函数案例1、云函数 云函数是部署在云端的函数,他和小程序本地的函数存在很大的区别,云函数应用涉及云端云函数定义和本地引用云端云函数...
    99+
    2024-04-02
  • Flutter中数据库的使用教程详解
    在Flutter开发过程中,我门有时候需要对一些数据进行本地的持久化存储,使用sp文件形式虽然也能解决问题,但是有时数据量较大的时候,显然我们文件形式就不太合适了,这时候我们就需要使...
    99+
    2024-04-02
  • C++11中匿名函数lambda的使用详解
    目录一、lambda基础介绍二、lambda使用例子2.1 STL算法中的回调函数2.2 回调函数2.3 多线程编程三、总结官方介绍: C++ lambda是C++11新增的一种匿名...
    99+
    2023-05-18
    C++11匿名函数lambda使用 C++11匿名函数lambda C++11匿名函数
  • C# String常用函数的使用详解
    目录RemoveSubstring Replace Spilt Join Append Remove Remove(int startIndex) 删除此字符串中从指定位置...
    99+
    2024-04-02
  • matlab中的series函数如何使用
    在MATLAB中,series函数用于计算数学级数的和。它的语法如下: sum = series(f, n, a, b) 其中,f...
    99+
    2024-04-02
  • MATLAB中normrnd函数的使用方法
    MATLAB中的normrnd函数用于生成服从正态分布的随机数。其使用方法如下:1. 语法:X = normrnd(mu, sigm...
    99+
    2023-09-14
    matlab
  • matlab中的train函数如何使用
    在MATLAB中,train函数用于训练机器学习模型。它可以用于训练各种不同类型的模型,如支持向量机、神经网络、朴素贝叶斯等。tra...
    99+
    2023-09-15
    matlab
  • C++教程之array数组使用示例详解
    目录背景定义和初始化数组字符数组的定义理解复杂的数组声明指针与数组指针是迭代器指针的算术运算解引用和指针的算术运算下标与指针最后背景 上一篇文章我们介绍了C++中的迭代器,这篇文章...
    99+
    2023-03-08
    C++ array数组教程 C++ array
  • C++调用matlab函数的实例
    目录一、封装matlab函数二、 编译matlab函数三 、C++环境配置四、mwArray数组的运用一、封装matlab函数 首先把matlab代码封装成函数形式,下面举一个例子,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作