s******8 发帖数: 164 | 1 用g(t)去调制高频余弦信号:f(t)=g(t)cosw0t
f(t)的傅立叶变换:
F[f(t)] = F(w) =
(1/2pi) x G(w) * [pi x o(w+w0) + pi x o(w-w0)] =
0.5[G(w+w0)+G(w-w0)]
(那个冲击函数的字母没办法打出来所以这里暂用字母o代替了,此外*为卷积运算符)
传递函数 = 输出f(t)的傅立叶变换除以输入g(t)的傅立叶变换 =
0.5[G(w+w0)+G(w-w0)]/G(w)
奇怪了,传递函数应该是不依赖输出的只和系统有关的,怎么这个传递函数里还有输入
g(t)的傅立叶变换G(w)这个因子?
系统的输出等于激励与系统冲击响应的卷积:r(t)=e(t)*h(t)
上式两边取傅立叶变换得:R(w)=E(w)H(w),所以系统传递函数就是系统冲击响应的傅
立叶变换。现在此系统冲击响应等于o(t)cosw0t,它的傅立叶变换可以用冲击函数o(t)的傅立叶变换去替换上边F(w)的表达式中的G(w)来得到,而冲击函数o(t)的傅立叶变换是常数1,所以替换的最终结果竟然是个常数1 !!!------ 妈呀,怎么这个传 |
|
i****d 发帖数: 255 | 2 不太明白楼上的反问。
要我说,至少在C里面,仅传递函数名本身就可以了,因为不会有函数同名或者重载的
问题。函数名本身就可以唯一的代表一个函数,不再需要在传递函数指针时还带上所有
的参数类型。
对吗? |
|
e*****m 发帖数: 320 | 3 时不变系统,假定有一组输入x(t)和输出y(t)已知。系统的传递函数未知。
通过一些其他知识和方法,可以估计系统的传递函数为:
h(t)=Aexp(-t/B) 其中A B为待定参数。
估计出来的h(t)与x(t)卷积,产生的y_estimate(t)必然与y(t)有一些误差。
按照一定的评判标准,必然可以得到一个最优值,获得A_estimate和B_estimate
这里面的问题是:有没有办法获得A_estimate和B_estimate这两个估计值的置信区间?
谢谢! |
|
a****l 发帖数: 8211 | 4 知道一个系统的微分方程,根据其特征方程的根是否在y轴左边可以知道系统是否稳定;
如果把这个系统离散化,得到Z传递函数,则根据极点是否在单位圆内也可以知道系统是
否稳定.
问题是,这两个稳定性判据是否有联系?左平面和单位圆内有什么联系吗? |
|
y**b 发帖数: 10166 | 5 多谢pptwo and goodbug! 按这个思路做了,感觉不错,有几个问题再请教一下:
1. 这个singleton维护的hashmap类似于一个全局变量,无需传递函数参数,
任何对象和函数都可以取用,很方便,可是总觉得有点特别。想问一下这样做
很普遍吗?有个实验室开发的一个大型面向对象程序包,读入数据之后进行了
无数的分离和传递,直到每个用到(不同数据部分)的对象都完全用local的数据
结构来维护所需数据,好处是各个对象显得high cohesion, 缺点是非常繁琐、
数据冗余很多。你们觉得那种设计更好?
2. pptwo: You got great flexibility by not hard-coding all the parameters
in that singleton class. 这句话怎么理解?我想把所有数据一次性读入到
该singleton class,这样失去flexibility?
3. 大量进程读(一次)一个小文件(比如singleton class存储的内容)开销不大,
但是读那些很大的数据文件开销可能很大。比如我在该singleton cla... 阅读全帖 |
|
i****d 发帖数: 255 | 6 按照我的理解,如果要把一个函数(A)指针当成参数传给另外一个函数(B),在函数B的参
数表里需要把函数A的类型和它所有参数的类型全部带上,这样函数B的参数表就会非常
冗长。比如:
double B(double a, double b, double (*A)(double, int, char*, double*))
不知道我的理解是否正确,各位有没有好的解决方法。
多谢! |
|
c******o 发帖数: 1277 | 7 实际上不同点复杂得多。
我知道的,
第一是 函数是第一类成员,它可以象数据一样传递,函数可以接受/产生函数。(这
一点上,连scala都不是FP, 函数在scala里是class,不是数据)
第二是 需要是纯函数,不能有side effect(不光是mutable, IO也是side effect
),这一点实际几乎不可能,所以都做特殊处理和掩盖 (streaming IO process, IO
monad, State Monad etc.)。
其他的都是可添加的特性和得出的推论,不是真正的区别。
类成员可以有数据,只不过不是变量。 |
|
f*******y 发帖数: 988 | 8 你这个是run time
compile-time需要让compiler知道他们是不同的函数类型
当然你可以说compiler不管了,run-time再报错好了,这是设计理念的问题 |
|
j******a 发帖数: 1599 | 9 问题是这样的:一个parent process, 在我这里就是个shell, 能够fork()一个child
process, 这个child process 又能继续产生子进程。 但是我们希望最多有三层shell
, 就要报错,我本来想用一个int shell_counter的变量来记录,但是每次fork()以后
这个变量就从新初始化了,所以就达不到效果。
那么怎么样才能让child process 看到parent process的这个变量呢?换言之,怎么把
这个变量传递给child process呢? |
|
s**g 发帖数: 66 | 10 “辅助推一下传递函数,建立一个复杂电路模型然后给伯德图这种"
假设你是给开关电源建模。
这里就涉及到你是直接要数值解,还是从解析解出发来搞分析。
如果只是要数值解,一种办法是通过周期系统的AC仿真得到主电路的传递函数(比如
Cadence spectre 里有一种qpssac的仿真分析)。有了该传递函数,再设计控制器,可
以用spice based的电路仿真或者matlab来做。用spice 的好处是,你能够把一些厂家
提供的运放电路macro model包括进去。
另外一种办法是利用系统辨识的策略,把主电路当成一个黑匣子,开路状态下,占空比
突然小幅增大,看输出的阶跃响应,取导数得impulse response, 换到频域就是传递函
数了。接下来的过程就一样。这里你只是需要一个主电路时域暂态方真。
解析解的推导:功率级的传递函数可以利用一些symbolic analysis tool like Matlab
symbolic tool box, mathematica 以及maple, 也可以用sapwin.具体过程可以利用信
号流图,也可以通过状态空间。其实大部分常用的主电路的传... 阅读全帖 |
|
w*****x 发帖数: 116 | 11 有一个系统,输入是温度T, 输出是光学的信号Y。其输入关系为Y=C1*T+C0
我想问问
1. 这个系统的传递函数是 G(s)=C1(系统是一个比例放大?)是不是如果计算传递函数
的话,必须满足输入为0时候, 输出也为0的条件?所以C0必须为0?若C0不为0,是不
是要重新定义输出量y'=y-C0?
2. 现在在输出信号中增加一项-C2*T,我想把这项放在负反馈的线路上,形成最后的输
出是
Y=C1*T-C2*T+C0。
可我计算此时闭环传递函数是: G(s)/(1-G(s)/C2)=C1*C2/(C1-C2),发现若C1=C2,这
个传递函数是无穷大?这样理解对么?
3. 无穷大的系统稳定么?
谢谢了,
很多年没动过控制的书了,只记得一些概念。谢谢指点。 |
|
w*****x 发帖数: 116 | 12 有一个系统,输入是温度T, 输出是光学的信号Y。其输入关系为Y=C1*T+C0
我想问问
1. 这个系统的传递函数是 G(s)=C1(系统是一个比例放大?)是不是如果计算传递函数
的话,必须满足输入为0时候, 输出也为0的条件?所以C0必须为0?若C0不为0,是不
是要重新定义输出量y'=y-C0?
2. 现在在输出信号中增加一项-C2*T,我想把这项放在负反馈的线路上,形成最后的输
出是
Y=C1*T-C2*T+C0。
可我计算此时闭环传递函数是: G(s)/(1-G(s)/C2)=C1*C2/(C1-C2),发现若C1=C2,这
个传递函数是无穷大?这样理解对么?
3. 无穷大的系统稳定么?
谢谢了,
很多年没动过控制的书了,只记得一些概念。谢谢指点。 |
|
p***p 发帖数: 559 | 13 【 以下文字转载自 Unix 讨论区 】
【 原文由 pingp 所发表 】
这是RS书里面的一个降序编历目录的程序,其中用
static Myfunc myfunc;
static int myftw(char *, Myfunc *);
static int dopath(Myfunc *);
用函数指针来作参数传递函数myfunc,并且
if ( (ret = dopath(func)) != 0) /* recursive */
用它来递归,可是这个函数本身就是个全局函数,直接
调用就可以了,为什么还有传递呢?
另外那段递归数据传递和结束条件也不太明白,RET变量
是作什么的
#include
#include
#include
#include
#include "ourhdr.h"
typedef int |
|
g****t 发帖数: 31659 | 14 很明显这是EE的题。这里都是CS的。
变量1和2分别就是电压和电流。
你需要算他们之间的传递函数。吹的悬一点
就是什么kalman filtering,维诺卷积等经典算法。
说的土一点就是把电压和电流分别作傅立叶变换,
然后V(jw)/I(jw) fitting算出来传递函数,以及误差区间。
在3*sigma以外的点就是有问题的点。
你可能不适合这个工作。线性系统理论这方面基础得一年甚至几年
才行。本科的工程数学至少要学复变函数,积分变换两门课。但这些东西
学了也没什么大用。不如学个java.
如果连传递函数四个字都不知道,去
处理传感器的信号是没有意义的。 |
|
p***p 发帖数: 559 | 15 这是RS书里面的一个降序编历目录的程序,其中用
static Myfunc myfunc;
static int myftw(char *, Myfunc *);
static int dopath(Myfunc *);
用函数指针来作参数传递函数myfunc,并且
if ( (ret = dopath(func)) != 0) /* recursive */
用它来递归,可是这个函数本身就是个全局函数,直接
调用就可以了,为什么还有传递呢?
另外那段递归数据传递和结束条件也不太明白,RET变量
是作什么的
#include
#include
#include
#include
#include "ourhdr.h"
typedef int Myfunc(const char *, const struct s |
|
d*******2 发帖数: 340 | 16 通过函数传递数组会让计算速度下降吗?我写的程序通过函数传递4个数组,我们组另
外一个人写的好像函数后面的括号里啥也没有。是不是我的写法太笨了?先谢了! |
|
G*******m 发帖数: 16326 | 17 “信号与系统”是与通信、信息及自动控制等专业有关的一门基础学科。它的主要任务
是:(1)在“时间域”及“频率域”下研究时间函数x(t)及离散序列x(n)的各种表
示方式,(2)在“时间域”及“频率域”下研究系统特性的各种描述方式,(3)在“
时间域”及“频率域”下研究激励信号通过系统时所获得的响应。
时间函数x(t)及自变量代表时间的离散序列x(n)是信号的时域的基本表示方式。此
外,无论是连续信号还是离散序列,都可以在频域中用它的傅里叶变换(即频谱函数)
表示,也可以在“复频域”中用相应的拉普拉斯变换或z变换表示。与此对应,连续或
离散系统的特性可在时域中用微分方程或差分方程描述,也可分别用冲激响应h(t)或h
(n)描述;或频域中用频率响应H(jω)、H(ejω)或传递函数H(s)、H(z)描述。研究
在给定的激励下通过系统的响应,可以在时域下用解微分方程或差分方程的方法,或通
过激励信号与冲激响应的卷积进行,也可以在频域下,分别将连续信号或离散序列的傅
里叶变换、拉普拉斯变换或z变换与系统的频率响应或传递函数相乘,得出响应的傅里
叶变换、拉普拉斯变换或z变换,再进行反变换。就得到... 阅读全帖 |
|
b***y 发帖数: 2799 | 18 ☆─────────────────────────────────────☆
xubest (既飞之蜻蜓) 于 (Wed Mar 19 00:19:46 2008) 提到:
比如有程序如下
#include
using namespace std;
class ABC
{
ABC(int a);
~ABC()
}
ABC::ABC(int a)
{
cout<
}
ABC::~ABC()
{
}
int main()
{
int OK=1;
ABC abc(OK);
return 0;
}
当定义对象abc的时候,直接把OK传递过去,直接运行构造函数。但是我现在死心眼,
偏偏想要把 “ABC abc(OK)” 这一行拆开写,但是要得到同样结果。
我希望先是
ABC abc;
然后
abc.ABC(OK);
但是这样做是不行的,因为构造函数不能被调用。而我又不想改动构造函数。
所以我的问题就是,如果在先定义了ABC abc的情况下,怎么做才能做到把OK值传递到
构造函数里? 让他运行同样的结果? |
|
s******e 发帖数: 2181 | 19 基本道理清楚,数组作为参数传递给函数的只是数组首元素的地址,函数在需要用到后
面元素时再按照这个地址和数组下标去查找。同时,数组名又正好是数组首元素的地址
,所以在主函数里调用子函数时只需写数组名,那么首元素的地址就传出去了。
我的问题来了,如下例,被调用的函数multiply的形参部分,float *p说明p是一个地
址,这个地址就是传过来的数组首元素的地址。既然p只是地址,那后面的操作
p[0]=2*p[0]
p[1]=2*p[1]
p[2]=2*p[2]
...
不是在把地址乘以2吗,怎么就变成把地址里面的内容乘以2了?用*p[...]来操作是不
是更符合情理?而且p既然是一个地址,怎么就可以写成p[...]了呢,这不变成地址数
组了吗?
虽然实际当中都在这样写,但心中的困惑一直都在。我不是专业马工,求专业马工解惑
并轻拍。
main()
{
float num[]={2.0,3.1,8.6,4.1,7.9};
const int size=sizeof(num)/sizeof(int);
multiply(num,size);
...
}
voi... 阅读全帖 |
|
e*l 发帖数: 37 | 20 对于拷贝构造函数no-trivial的对象,函数参数不要按值传递,可以按引用或指
针传递;函数返回值也不要直接返回对象,可以将返回值通过函参传递;尽量避
免临时变量的生成,避免不必要的构造析构开销。你的代码中基本充斥着这些问题,
效率很低是很正常的
variable |
|
a****l 发帖数: 8211 | 21 我的问题是,有的系统是光用p能调的稳定的,有的系统是光用p不能调稳定的.但是如果
你面前放一个这样的弹簧系统,不使用传递函数判断(这个例子中的传递函数是很简单的
,但是假设系统是复杂的无法得到传递函数),有什么其他的特征你能够很大把握的判断
出这样的一个系统是不可能用p稳定的?或者说,这个弹簧系统的什么特征使得没有p能够
让它稳定? |
|
l****n 发帖数: 157 | 22 我们物理学家比较不喜欢合作者中搞纯信号处理的。拿我们一个信号过来,说,我这么这
么变换,上乘一个这个,下除一个那个,左一积分,右一卷积,看出我这结果的趋势来没
有?看出趋势来没有嘛??我们物理学家就要问why you can do this? any physical
meaning? 我们合作者里有人就这么写paper,我肚子里管他叫alchemist.
physical meaning, hehe, 划时代的东东出现了!
我们老板搞数学力学的,关于层状结构,已知边界条件情况下,推一堆公式以后可以得到
应力应变位移等在任意两点之间的传递函数。多层结构的传递函数把每层的相乘就是了。
呵呵,我现在知道任意两点之间的应力之间的传递函数了!拿来model我的汽车paint.
.
这 |
|
q*******i 发帖数: 353 | 23 就调用一次啊,在函数外先 arraycopy(b,a)。然后把数组b传递给函数,在函数中
修改数组b的值同时,a的值也被修改,我想达到只在函数中修改b的值,a的值不变,除
了你刚才说的办法,还有没有其他更高效的办法? |
|
m****s 发帖数: 1481 | 24 我需要读取一个数据文件,然后把读出来的数据放到不同的变量里,因为这些变量的长
度不确定,所以都是临时根据长度分配内存,code如下:
... main(){
...
...
int *a,length_a;
double *d,length_d;
char *c,length_c;
FILE *fp;
... 打开文件代码...
...读文件,获取变量a,d,c的长度...
a= new int[length_a];
d= new double[length_d];
c= new char[length_c];
...计算,处理...
delete[] a;
delete[] d;
delete[] c;
}
这种最基本的方法运行没问题。
现在因为我要load的变量很多,所以我想把loading用一个函数来做。如果只有一个变
量,我可以把它的pointer定义在main里面,然后用一个函数读取文件,在函数里
declare一个临时pointer,分配内存,赋值,然后返回这个pointer。
但是如果多个变量的情况怎么做呢?
我先试了把多个变量的指针传递给子函数,在子函数里declare... 阅读全帖 |
|
q*******i 发帖数: 353 | 25 【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计?
发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东)
比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做
了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应
该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢?
(用指针的指针传递?) |
|
c******e 发帖数: 545 | 26 这种函数都是__cdecl调用,参数从右向左压栈,主调函数清栈。
format string在最左(printf)或次左(fprintf,sprintf...),所以用[BP]访问的时候
位置可预测,然后根据format string生成每个参数的偏移地址。
一般来说函数调用大致顺序(__cdecl)是:
1.主调函数从右到左压参数
2.建立栈帧
1)保存BP(32位下EBP,下同)push bp
2)保存当前栈位置:mov bp,sp
因为BP和SP默认同时用栈段(SS),用BP上可访问参数,下可访问局部变量,一般不用
SP,因为SP总是在变。
3.函数体
4.恢复bp:mov sp,bp pop bp
4.函数返回
5.主函数清栈(xxx是参数大小):add sp,xxx
时间太久可能细节不太准确,不过大致过程应该差不多,可以使用变长参数的两个决定
因素是:1. 右到左压栈 2. 主调函数清栈 |
|
f*****y 发帖数: 1997 | 27 【 以下文字转载自 Programming 讨论区 】
发信人: fireicy (Light be with you.), 信区: Programming
标 题: 新手问一个多维数组传递给函数的问题
发信站: BBS 未名空间站 (Wed Dec 5 22:17:50 2012, 美东)
请大家看看我的new和delete用的对么? 传给函数的时候,是传指针还是数组名呢?
void main()
{
double **** g;
g = new double *** [m_ydimension];
for(i=0; i< m_ydimension; i++)
{
g[i] = new double ** [m_xdimension];
for (j=0; j< m_xdimension; j++)
{
g[i][j]= new double * [m_zdimension];
for (k=0; k
... 阅读全帖 |
|
q*******i 发帖数: 353 | 28 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢
b |
|
q*******i 发帖数: 353 | 29 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢 |
|
b***y 发帖数: 2799 | 30 ☆─────────────────────────────────────☆
wmbyhh (wmbyhh) 于 (Wed Mar 12 16:46:55 2008) 提到:
请问是不是所有编程语言的函数调用,Matlab/C++/Java/Delphi都是传递形参?
而非实参?就是说传递的参数只传递值,其参数本身不改变?
包含Matlab?
☆─────────────────────────────────────☆
vvs (vvs1991) 于 (Wed Mar 12 17:28:22 2008) 提到:
C++ 如果加了reference,就把自己给传进去了,你就可以改变它。java好像永远是传
值,不过因为对象是reference,所以,传进去的obj都是可以乱改的。
☆─────────────────────────────────────☆
PaulPierce (Paul) 于 (Wed Mar 12 21:01:46 2008) 提到:
java is pass by value, don't get messed
☆────── |
|
q*******i 发帖数: 353 | 31 我遇到的问题是把数组作为参数传递给函数,在函数中数组值被修改同时原来的值也被
修改,有什么办法能让函数中值被修改但是原值不被修改。谢谢 |
|
q*******i 发帖数: 353 | 32 我是先把数组拷贝(比如把数组a copy 给b),然后把b整个数组作为参数传递到函数
中,在函数内数组b的值被修改了,于此同时函数外a的值也被自动修改了(因为是地址
拷贝),但是我希望保持a不变,怎么操作? |
|
q*******i 发帖数: 353 | 33 【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计?
发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东)
比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做
了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应
该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢?
(用指针的指针传递?) |
|
y**b 发帖数: 10166 | 34 看看能不能说的清楚:
科学计算程序,一次性从数据文件中读入很多参数,不同的(一个或几个相关参数)要传
递给不同的对象,很多对象还具有这种特点:初始化的时候只需要某些参数,其他动作
时还需要其他参数,比如空间一个多面体,初始化只需要空间坐标和密度等等,而后面
发生移动时还需要时间步长和重力加速度等等(时间步长和重力加速度逻辑上不应该是
该多面体的数据成员)。
第一,我是应该把时间步长/重力加速度等等作为该对象的成员,进行初始化;还是作
为该对象某个成员函数的的形参,想办法传入实参呢?
第二,我想设计一个class/struct来存储所有参数,以便MPI编程时用唯一一个进程来读
取参数,然后将这个存储参数的对象(通过boost.mpi)序列化并一次性broadcast给其他所
有进程(而不是一个参数一个参数地broadcast)。那么将包含所有参数的这个参数对象作
为实参,传递给任意一个只需要某些参数(而不是全部参数)的其它类的成员函数,是不
是很怪异呢?还是应该重新设计该成员函数的形参,使之仅仅获取所需要的参数,但这
样一来需要另行构造这些参数的类型?
谢谢。 |
|
d*******2 发帖数: 340 | 35 通过函数传递单个变量没有问题,不知道怎么传递一个4个数的小数组
double forpoly(double)
int main()
{
double dddn[4];
forpoly(dddn);
}
double forpoly(double dddn)
{}
怎么就不行呢?
先谢了!
改成
double forpoly(double)
int main()
{
double dddn[4];
forpoly(dddn[4]);
}
double forpoly(double dddn[4])
{}
好像也不行。 |
|
q*******i 发帖数: 353 | 36 比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做
了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应
该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢?
(用指针的指针传递?) |
|
x****o 发帖数: 21566 | 37 来源:王垠的博客
有些人问我,你说学习操作系统的最好办法是学习程序设计。那我们是不是应该学习一
些“设计模式”(design patterns)。这是一个我很早就有定论,而且经过实践检验
的问题,所以想在这里做一个总结。
总的来说,如果光从字面上讲,程序里确实是有一些“模式”可以发掘的。因为你总是
可以借鉴以前的经验,用来构造新的程序。你可以把这种经验叫做“模式”。可是自从
《设计模式》(通常叫做 GoF,“Gang of Four”,“四人帮”)这本书在 1994 年发
表以来,“设计模式”这个词有了新的,扭曲的含义。它变成了一种教条,带来了公司
里程序的严重复杂化以及效率低下。
GoF 借鉴的是一个叫 Christopher Alexander 的建筑师的做法。Alexander 给一些建
筑学里的“设计模式”起了名字,试图让建筑师们有一些“共同语言”。可惜的是,
Alexander 后来自己都承认,他的实验失败了。因为这些固定的模式,并没能有效地传
递精髓的知识,没能让新手成长为出色的建筑师。
照搬模式东拼西凑,而不能抓住事物的本质,没有“灵感”,其实是设计不出好东西的
。这就像... 阅读全帖 |
|
m******r 发帖数: 1033 | 38 多谢回答。 这个作者写了三本书,都是关于R的, meta programming, OOP, 还有这本
。 欧洲人,写得可以说比较通俗易懂(比较而言),有时还有图形解释,没找到任何
语法,拼写错误,在这类书里面还是少有的。 反正比R文档强。
R这个东西初学者两大难点,1,每个函数有自己的环境,造个函数就造了个环境; 2.
就是把函数当参数传递。 1其实好理解,类似于local/global 变量; 2如果没有工具
看函数里面的东西,光凭脑子想,就太抽象了。 好比中学讲解什么是f(x), 定义就是
一句话,讲解集合是如何映射到另外一个集合的, 没人听得懂,听懂也不会用。 你得
多讲讲 y=3x , 再听不懂, 就得讲3乘2。
R所谓‘美丽’的地方就是很多代码直接书写f,g,h ,有种看数学书的感觉, ‘丑陋’
之处就她不给你看三乘二是如何实现的. 好比美女,不给你看丑陋的地方,总是让人不
过瘾。
packet |
|
b****r 发帖数: 2555 | 39
信号在时域不好处理就在频域处理呗,时域跟频域的关系就是傅立叶变换。
这个传递函数应该是信号与系统里面那个传递函数吧。 |
|
m*******h 发帖数: 601 | 40 记得传递函数应该是和频谱分布相关?低高中频传递函数高低和细节色彩之类的相关? |
|
g*****u 发帖数: 298 | 41 我想写个函数,可以传递进去 hex, dec等等,函数声明应该怎么写? |
|
g****t 发帖数: 31659 | 42 他要实现他前面算出来的传递函数。
以电压滤波为例,
我想,只使用LC,那么对不同的负载,这个LC网路左右两端电压比不同,
所以传递函数是不同的。
所以这种情况需要 运放+LC,而且必然是有反馈的吧。
我也看不出来有什么必要设计两个2阶的,
二级的级联只会带来更多问题。
LC ladder sensitivity为零,比较适合集成电路,
用gm-c来实现LC ladder的话,由于是用在开环电路,
所以对OTA的要求很低,所以会比较省电吧
我随便说说,希望不要误导你 |
|
s**g 发帖数: 66 | 43 100兆的LC,真要用ONCHIP的电感,恐怕是太大。
而且不知OP有否考虑过L的品质因数对传递函数的影响。
LC实现是不可调的,工艺参数变化对传递函数的影响较大。
当然,可以用OTA来实现L的替换。那么就又回到了GM-C。
我比较倾向于BIQUAD,如果需要,基本上BW和Q(两者可以解耦)都可以有O
N-CHIP的PROGRAMMING或TUNING。 |
|
g****t 发帖数: 31659 | 44 你得先把这个东西弄成线性系统,不然传递函数按定义不是没有,
但那基本上都是瞎胡闹。
线性系统满足,f(u*k)=k*f(u).
(这是数乘,还有一条可加,这里先不论)
你这个Y(T)=C1*T+C0 的系统,对输入T是非线性的,
因为:k*Y(T1)不等于Y(T1*k).
所以你需要做的第一步是把坐标平移。弄出来一个线性系统。
然后按照定义就可以了,传递函数=输出和输入的拉式变换之比。
这里就是个比例环节。
比例环节是稳定的,按照李亚普诺夫的定义。 |
|
g****t 发帖数: 31659 | 45 没有状态方程照样可以有传递函数。
Bode等人用惯传递函数的时候,Kalman可能还没上大学 :-) |
|
g****t 发帖数: 31659 | 46 滤波器对不同频率信号的
滞后后不同,这个不是问题,只要你知道规律.就能用传递函数G(s)去fit
这个规律.有了传递函数,滤波器就出来了.
他这个例子.滤波器对不同频率的滞后是直线.
按我前面的推导.
所以也就是要设计个相位滞后能和
Pi-75ns*w 这条线match,gain能和|G(s)|=1match的滤波器.
这其实是个简单的多项式fit之类的东西.
matlab肯定行.
只用普通滤波器可以实现吗?
它的控制信号是可能有不同频率的,而滤波器对不同频率信号的相位滞后是不同的,所
以不可能把所有频率的控制信号都补偿掉那个75ns |
|
s*******i 发帖数: 12823 | 47 是非局域的,但是不好说是“作用”
这个过程并不能传递物理信息
完整的信息传递还是需要交换经典信息的 |
|
j**t 发帖数: 301 | 48 傅立叶分析的前提是系统传递函数的频率特性为线性,从而可以进行线性叠加(傅立叶分
析实际上是线性叠加的连续形式)。而对于非线性(光学)过程来说,
等效的系统传递函数频率特性实际上是非线性的,不同的频率会混合(和、差、倍等),
线性叠加不再适用。 |
|
l******d 发帖数: 530 | 49 多谢了,再问下,这种变长参数的函数调用,往stack里push的东西,和普通的定长参
数函数调用有区别吗?对定长参数函数调用,stack里push的就是寄存器和参数,对变
长参数函数调用而言,会有什么特殊处理吗?
is |
|
l********a 发帖数: 1154 | 50 我接受一个double arr[],经过运算,输出一个double,是objective function的值.
多谢几位.
fakeshawn朋友回复的这个模板我没大看明白
这样输入,c++会认为func是个函数吗?如果这个函数不存在呢?
调用的办法是: double obj = objectFunc(testObjFunc);
这样对吗?如果已经有一个函数定义为 double testObjFunc(...);
可是x[]参数怎么传递进去? |
|