我想创建一个带限表查找振荡器,其sin()功能与 C++ 中的函数非常相似,我将输入相位值并接收样本值。例如Sample s = saw(x);或Sample s = square(x);。
为了填充表格,我将首先生成一个过采样表,其中包含处于非频带受限状态的波的“X”因子。然后,我很可能通过某种 FIR 或 IIR 过滤器运行该表。然后我会以“X”因子抽取表格,然后希望有一个我可以从中读取的表格会产生频带限制信号。我还必须在表格中进行插值,以确保适应所有相位角。
我想知道这个理论是否可行?这意味着这会产生一个受频带限制的信号。
我将在下面模拟基本代码。
double saw(double phase){
return interpolate(phase);//i know this is incomplete
}
double fillTable(){
double table[size*oversampling];
//fill table here. skipping for length of example
for(int i =0;i<tableSize;++i){
table[i]=filter(table[i]);
}
double table2[size];
int x=0;
for(int i =0;i<tableSize;++i){
table2[i]=table[x];
x+=oversampling;
}
}
//usage
sample x = saw(phase);
我知道代码不完整且语法不正确,但我只想举例说明我希望能够做什么。
再说一遍。这会是乐队限制的吗?