bipolarami.java

来自「数字信号的八种编码技术,用java实现的!仅供参考」· Java 代码 · 共 53 行

JAVA
53
字号
package wxj.code.impl;

import java.util.ArrayList;
import java.util.List;

import wxj.code.Code;
import wxj.Regular.LevelRule;
/**
 * @author panhuizhi
 *
 */
public class BipolarAMI extends LevelRule implements Code {
	private List<String> bipolarAMIStrings = new ArrayList<String>();
	private char[] cs;
	private String level = LOW_LEVEL;

	public BipolarAMI(char[] cs, int initialLevel) {
		this.cs = cs;
		if (initialLevel == 0) {
			this.level = LOW_LEVEL;
		} else {
			this.level = HIGH_LEVEL;
		}
	}

	public List<String> excuteCodeRule() {
		int n = cs.length;
		for (int i = 0; i < n; i++) {
			if (cs[i] == '0') {
				bipolarAMIStrings.add(MIDDLE_LEVEL);
			}
			if (cs[i] == '1') {
				level = this.transform(level);
				bipolarAMIStrings.add(level);
			}
		}
		return bipolarAMIStrings;
	}

	private String transform(String level) {
		if (level.endsWith(HIGH_LEVEL)) {
			return LOW_LEVEL;
		} else {
			return HIGH_LEVEL;
		}
	}

	public String getName() {
		return "BipolarAMI";
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?